For the C programmer, include file ceaytsor.h defines
the structures, functions, and macros used for the CEATsoRequest API.
The header file is stored in partitioned data set SYS1.SIEAHDRV, and
contains the following information.
#ifndef __ceaytsor__
#define __ceaytsor__
/****** START OF SPECIFICATIONS **************************************
*
* DESCRIPTIVE NAME: CEA TsoRequest structures
*
* ACRONYM: CEAYTSOR
*
* STRUCT NAME: None
*
* LABEL PREFIX: None
*
* COMPONENT ID: Common Event Adpater (CEA)
*
****** END OF SPECIFICATIONS *****************************************/
/***PROPRIETARY_STATEMENT********************************************/
/* */
/* */
/* LICENSED MATERIALS - PROPERTY OF IBM */
/* COPYRIGHT IBM CORP. 2011, 2012 */
/* */
/* STATUS= HBB7770 */
/* */
/***END_OF_PROPRIETARY_STATEMENT*************************************/
/* */
/*01* EXTERNAL CLASSIFICATION: PI */
/*01* END OF EXTERNAL CLASSIFICATION: */
/* */
/*********************************************************************/
/* $Id: ieac1as2.ide, ieapr, osnp_v1r13.5 1.9 12/01/24 17:16:48 $ */
/**********************************************************************
* FUNCTION:
*
*
* This header file defines the structures, functions
* and macros used for CEATsoRequest() API.
*
* This support requires the setting of _XOPEN_SOURCE_EXTENDED
*
* RESTRICTIONS:
* None
*
* CHANGE-ACTIVITY:
*
****END OF SPECIFICATIONS*********************************************/
/**********************************************************************
Constants
**********************************************************************/
#define CEATSOREQUEST_CURRENTVERSION 1
#define CEATSOQUERY_CURRENTVERSION 1
#define CEATSOERROR_CURRENTVERSION 1
#define CEATSODIAG_CURRENTVERSION 1
#define CEATSOREQUEST_EYECATCHER "CEAYTSOR"
#define CEATSOQUERY_EYECATCHER "CEAYTSOQ"
#define CEATSOERROR_EYECATCHER "CEAIERRO"
/**********************************************************************
CONSTANTS ceatso_requesttype;
These are the request types used in the CEATsoRequest structure
**********************************************************************/
#define CeaTsoStart 1
#define CeaTsoEnd 2
#define CeaTsoQuery 3
#define CeaTsoAttn 4
#define CeaTsoPing 5
#define CeaTsoQueryApp 6
/**********************************************************************
CONSTANTS ceatso_flags
These are the flag values used in the CEATsoRequest structure
**********************************************************************/
#define CEATSO_ABLOGOFF 0x8000 // Use Cancel to end the TSO session
#define CEATSO_NOREUSE 0x4000 // Do not reconnect an existing session
/**********************************************************************
CEATsoRequestStruct_t
eyeCatcher - "CEAYTSOR"
version - CEATSOQUERY_CURRENTVERSION
request - request - uses CeaTso* constants
**********************************************************************/
struct CEATsoRequestStruct_s {
char ceatso_eyecatcher[8]; /* eye catcher: CEAYTSOR */
uint32_t ceatso_version; /* version number */
uint32_t ceatso_requesttype; /* which type request */
char ceatso_userid[8]; /* tso id */
uint32_t ceatso_asid; /* tso asid */
char ceatso_logonproc[8]; /* logon proc name */
char ceatso_command[80]; /* unused */
uint16_t ceatso_numqueryreq; /* caller num max query */
uint16_t ceatso_numqueryrslt; /* actual num query */
uint32_t ceatso_duration; /* unused */
uint32_t ceatso_msgqueueid; /* msg queue id */
uint16_t ceatso_charset; /* callers character set */
uint16_t ceatso_codepage; /* callers code page */
uint16_t ceatso_screenrows; /* screen rows */
uint16_t ceatso_screencols; /* screen cols */
char ceatso_account[40]; /* tso account number */
char ceatso_group[8]; /* tso group name */
char ceatso_region[7]; /* tso region size */
char ceatso_instance[1]; /* tso instance number */
char ceatso_apptag[8]; /* identity of caller */
char ceatso_stoken[8]; /* tso asid stoken */
uint32_t ceatso_ascbaddr; /* tso ascb address */
uint16_t ceatso_flags; /* tso request flags */
uint16_t ceatso_index; /* tso session index */
char rsvd1[8]; /* reserved space */
};
typedef struct CEATsoRequestStruct_s CEATsoRequestStruct_t;
/**********************************************************************
CEATsoQueryStruct_t*
This structure is used to return Query results for the CEATsoRequesst
CeaTsoQuery
eyeCatcher - "CEAYTSOQ"
version - 1
**********************************************************************/
struct CEATsoQueryStruct_s{ /* query results */
char ceatsoq_eyecatcher[8]; /* eye catcher: CEAYTSOQ */
uint32_t ceatsoq_version; /* version number */
uint32_t ceatsoq_requesttype; /* which type request */
char ceatsoq_userid[8]; /* tso id */
uint32_t ceatsoq_asid; /* tso asid */
char ceatsoq_logonproc[8]; /* logon proc name */
char ceatsoq_command[80]; /* tso command */
uint16_t ceatsoq_numqueryreq; /* caller num max query */
uint16_t ceatsoq_numqueryrslt; /* actual num query */
uint32_t ceatsoq_duration; /* duration */
uint32_t ceatsoq_msgqueueid; /* msg queue id */
uint16_t ceatsoq_charset; /* callers character set */
uint16_t ceatsoq_codepage; /* callers code page */
uint16_t ceatsoq_screenrows; /* screen rows */
uint16_t ceatsoq_screencols; /* screen cols */
char ceatsoq_account[40]; /* tso account number */
char ceatsoq_group[8]; /* tso group name */
char ceatsoq_region[7]; /* tso region size */
char ceatsoq_instance[1]; /* tso instance number */
char ceatsoq_apptag[8]; /* identity of caller */
char ceatsoq_stoken[8]; /* tso asid stoken */
uint32_t ceatsoq_ascbaddr; /* tso ascb address */
uint16_t ceatsoq_flags; /* tso request flags */
uint16_t ceatsoq_index; /* tso session index */
char rsvd1[8]; /*reserved space */
};
typedef struct CEATsoQueryStruct_s CEATsoQueryStruct_t;
/**********************************************************************
CEATsoDiag_t
version - version of CEADiag_t
flags - diagnostic flags
offset - offset point to additional information
rsvd - reserved for future use
diag1 - Used to hold return codes
diag2 - from system REXX scripts
diag3 - or other things outside of
diag4 - CEA control
rsvd2 - reserved for future use
messageArea - Contains any output messages relating to error codes
* This structure is part of CEAError, doesn't get its own eyecatcher
**********************************************************************/
struct CEATsoDiag_s {
uint8_t version;
uint8_t flags1;
uint16_t offset;
uint8_t diagid;
char rsvd[3];
uint32_t diag1;
uint32_t diag2;
uint32_t diag3;
uint32_t diag4;
char rsvd2[16];
char messageArea[256];
};
typedef struct CEATsoDiag_s CEATsoDiag_t;
/**********************************************************************
CEAError_t
eyeCatcher - "CEAIERRO"
version - version of CEAError_t
returnCode - function return code - duplicate of function return value
reasonCode - further explanation of a return code.
diag - further explanation of a reason code.
**********************************************************************/
struct CEATsoError_s {
char eyeCatcher[8];
uint32_t version;
int32_t returnCode;
uint32_t reasonCode;
CEATsoDiag_t diag;
};
typedef struct CEATsoError_s CEATsoError_t;
/**********************************************************************
Function prototype CEATsoRequest
**********************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
int32_t CEATsoRequest(CEATsoRequestStruct_t*,
CEATsoQueryStruct_t*,
CEATsoError_t*);
#ifdef __cplusplus
}
#endif
/**********************************************************************
Diag Values
These are the possible values that can be retruned in the Diag1
field in the CEAError_t Diag structure returned from the
CEATsoRequest API
Note: Some duplication of codes exist but codes are unique per API
Request Type
**********************************************************************/
#define kCEATsoBadRacRouteExtr 0X0004 //0004
#define kCEATsoBadRacRouteCreate 0X0005 //0005
#define kCEATsoBadAddSession 0X000A //0010
#define kCEATsoBadQuerySession 0X000B //0011
#define kCEATsoBadASCBStoken 0X000C //0012
#define kCEATsoBadSessIndex 0X000D //0013
#define kCEATsoBadRemoveSessEntry 0X000E //0014
#define kCEATsoBadLogonMGCRE 0X000F //0015
#define kCEATsoSessionNotFound 0X0010 //0016
#define kCEATsoBadSessENQreq 0X0011 //0017
#define kCEATsoBadSessDEQreq 0X0012 //0018
#define kCEATsoBadSessUpdateLR 0X0013 //0019
#define kCEATsoBadQuerySessApptag 0X0014 //0020
#define kCEATsoBadNumEntries 0X0015 //0021
#define kCEATsoBadMsgQDelete 0X0016 //0022
#define kCEATsoBadAppTag 0X0017 //0023
#define KCEATsoBadWiComCreate 0X0017 //0023
#define KCEATsoBadResmgrAdd 0X0018 //0024
#define kCEATsoBadQueryAllSessions 0X0019 //0025
#define kCEATsoBadApptag 0X001A //0026
#define kCEATsoBaduserid 0X001B //0027
#define kCEATsoBadlogonproc 0X001C //0028
#define kCEATsoBadcharset 0X001D //0029
#define kCEATsoBadcodepage 0X001E //0030
#define kCEATsoBadscreenrows 0X001F //0031
#define kCEATsoBadscreencols 0X0020 //0032
#define kCEATsoBadaccount 0X0021 //0033
#define kCEATsoBadgroup 0X0022 //0034
#define kCEATsoBadregion 0X0023 //0035
#define kCEATsoBadQueryEyecatcher 0X0024 //0036
#define kCEATsoBadQueryVersion 0X0025 //0037
#define kCEATsoBadCharsetCodepage 0X0026 //0038
#define kCEATsoBadregionsize 0X0027 //0039
#endif /* __ceaytsor__ */