|
CEE3INF
queries and returns to the calling routine the information about the
system/subsystem, the environment information, the member languages,
and the version of Language Environment associated
with this enclave.
Syntax
>>-CEE3INF------------------------------------------------------>
>--(--sys/subsys--,--env-info--,--member-id--,--gpid--,--fc--)-><
- sys/subsys (input/output)
- As input, sys/subsys is considered to be an address to
a fullword. As output, the fullword is a 32-bit map that represents
the operating system or subsystem on which the enclave is currently
running.
- 0
- Currently executing in the CICS® environment
- 1
- Currently executing in a CICS_PIPI environment
- 2-3
- Reserved for other specific CICS environments
- 4
- Currently executing in a TSO environment
- 5
- Currently executing in a Batch environment
- 6
- Currently executing in a z/OS® UNIX environment
- 7-28
- Reserved for future use
- 29
- Currently executing on z/VSE®
- 30
- Currently executing on z/OS
- 31
- Reserved.
- env-info (input/output)
- As input, env-info is considered to be an address to a
fullword. As output, the fullword is a 32-bit map representing the
environments that are active in that enclave.
- 0
- Currently executing in a PIPI environment
- 1
- Currently executing in a PIPI-Main environment
- 2
- Currently executing in a PIPI-Sub environment
- 3
- Currently executing in a PIPI-Subdp environment
- 4
- Currently executing in a PICI (Pre-init compatibility interface)
environment. For more information, see z/OS XL C/C++ Programming Guide.
- 5
- Currently executing in a nested enclave
- 6
- LRR is active in the current enclave
- 7
- Runtime reuse is active in the current environment
- 8
- XPLINK(ON) is in effect in the current enclave
- 9
- POSIX(ON) RTO in effect in the current enclave
- 10
- At least one pthread has been created in this enclave
- 11
- Currently executing on the IPT
- 12
- Multithreaded fork is in effect in the current enclave
- 13-14
- AMODE Init
- B'00'
- AMODE 24
- B'10'
- AMODE 31
- 15
- Currently executing in a PIPI-Maindp environment
- 16-31
- Reserved for future use
- member-id (input/output)
- As input, member-id is considered to be an address to a
fullword. As output, the fullword is a 32-bit map representing the
member languages that are initialized in that enclave.
- 0
- Reserved
- 1
- Reserved
- 2
- Reserved
- 3
- C/C++
- 4
- Reserved
- 5
- COBOL
- 6
- Reserved
- 7
- Fortran
- 8-9
- Reserved
- 10
- PL/I
- 11
- Enterprise PL/I
- 12-14
- Reserved
- 15
- Reserved
- 16
- Reserved
- 17-23
- Reserved for future use
- 24-31
- The current version number of CEE3INF. It is currently set to
0.
- gpid (input/output)
- A fullword integer representing the version of Language Environment that
created this thread. This fullword can be interpreted as a four-byte
hex number as follows:
|PP|VV|RR|MM|
- PP
- product number
- VV
- version
- RR
- release
- MM
- modification
- fc (output)
- A 12-byte feedback code, optional in some languages,
that indicates the result of this service. If you choose to omit this
parameter, refer to Invoking callable services for the
appropriate syntax to indicate that the feedback code was omitted.
The
following symbolic conditions can result from this service:
Code |
Severity |
Message number |
Message text |
---|
CEE000 |
0 |
— |
The service completed successfully. |
Usage notes - z/OS UNIX considerations
— CEE3INF is allowed only in the thread.
- If you are not interested in any one of the parameters being passed,
a 0 must be placed in the slot of those parameters. This indicates
that no information is needed regarding that parameter.
- When the PIPI or nested enclave environment bit is on, a subsystem
bit may not be set.
Examples - An example of CEE3INF called by C/C++:
/*Module/File Name: EDC3INF */
/*********************************************************************/
/* */
/* THIS EXAMPLE CALLS CEE3INF TO GET INFORMATION OF THE CURRENT */
/* ENCLAVE, LIKE THE SYSTEM/SUBSYSTEM, THE ENVIRONMENT INFORMATION, */
/* THE MEMBER LANGUAGES USED AND THE VERSION OF LANGUAGE ENVIRONMENT.*/
/* */
/*********************************************************************/
#include <leawi.h>
#include <string.h>
#include <ceeedcct.h>
int main(void) {
_INT4 sys_subsys,env_info,member_id,gpid;
_FEEDBACK fc;
/* Calling CEE3INF to get the information */
CEE3INF(&sys_subsys,&env_info,&member_id,&gpid,fc);
if ( _FBCHECK(fc,CEE000) != 0 ) {
printf("CEE3INF failed with message number %d\n", fc.tok_msgno);
}
printf("System/Subsystem in hex %08x \n",sys_subsys);
printf("Enviornment info in hex %08x \n",env_info);
printf("Member languages in hex %08x \n",member_id);
printf("GPID information in hex %08x \n",gpid);
printf("\n");
}
- An example of CEE3INF called by COBOL:
CBL LIB,QUOTE
*************************************************
*Module/File Name: IGZTINF
*****************************************************************
** **
** Function: CEE3INF - Query enclave information **
** **
** This example calls CEE3INF to gather data about the current **
** enclave like the system/subsystem, environment information, **
** member languages, and Language Environment version number. **
** **
*****************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. CBL3INF.
DATA DIVISION.
WORKING-STORAGE SECTION.
**********************************************************
** Define space for a Language Environment feedback **
** code (12 total bytes). **
** Include a copy of CEEIGZCT to get pre-defined **
** Language Environment condition tokens. **
**********************************************************
01 FC.
02 CONDITION-TOKEN-VALUE.
COPY CEEIGZCT.
03 CASE-1-CONDITION-ID.
04 SEVERITY PIC S9(4) BINARY.
04 MSG-NO PIC S9(4) BINARY.
03 CASE-SEV-CTL PIC X.
03 FACILITY-ID PIC XXX.
02 I-S-INFO PIC S9(9) BINARY.
**********************************************************
** Define some storage to be used by the Language **
** Environment callable service. **
**********************************************************
01 SYS-SUBSYS PIC S9(9) BINARY.
01 ENV-INFO PIC S9(9) BINARY.
01 MEM-ID PIC S9(9) BINARY.
01 GPID PIC S9(9) BINARY.
PROCEDURE DIVISION.
MAIN-PROG.
* *************************************************
* ** Now call CEE3INF. It returns the results **
* ** of the query on the environment and the **
* ** feedback code. **
* ** Report error and stop if CEE3INF fails. **
* *************************************************
CALL "CEE3INF" USING SYS-SUBSYS, ENV-INFO, MEM-ID, GPID, FC.
IF CEE000 OF FC THEN
DISPLAY "SYS-SUBSYS: " SYS-SUBSYS
DISPLAY "ENV-INFO : " ENV-INFO
DISPLAY "MEM-ID : " MEM-ID
DISPLAY "GPID : " GPID
ELSE
DISPLAY "CEE3INF FAILED WITH MSG "
MSG-NO OF FC UPON CONSOLE
STOP RUN
END-IF.
GOBACK.
- An example of CEE3INF called by PL/I:
*PROCESS MACRO;
/***************************************************/
/*Module/File Name: IBM3INF */
/*******************************************************************/
/** **/
/** Function: CEE3INF - query enclave information **/
/** **/
/** This example calls CEE3INF to gather data about the current **/
/** enclave like the system/subsystem, environment information, **/
/** member languages, and Language Environment version number. **/
/** **/
/*******************************************************************/
PLI3INF: PROCEDURE OPTIONS (MAIN) REORDER;
%INCLUDE CEEIBMAW;
%INCLUDE CEEIBMCT;
DCL SYSPRINT File Output Stream;
DCL SYS_SUB REAL FIXED BINARY(31,0),
ENV_INF REAL FIXED BINARY(31,0),
MEM_ID REAL FIXED BINARY(31,0),
GPID REAL FIXED BINARY(31,0);
/********************************************************/
/* Declare a Language Environment Feedback token. */
/* 12 Total bytes of storage. */
/********************************************************/
Declare 01 LE_Feedback_Code,
03 MsgSev REAL FIXED BINARY(15,0),
03 MsgNo REAL FIXED BINARY(15,0),
03 Flags,
05 Case BIT(2),
05 Severity BIT(3),
05 Control BIT(3),
03 FacID CHAR(3),
03 ISI REAL FIXED BINARY(31,0);
/********************************************************/
/* Local declares needed for Messaging Callable Services*/
/********************************************************/
Declare Msg_dest REAL FIXED BINARY(31,0);
Declare Msg_String CHAR(255) VARYING;
Msg_dest = 2;
/********************************************************/
/* Call CEE3INF to request info about the */
/* current enclave */
/********************************************************/
CALL CEE3INF(SYS_SUB,ENV_INF,MEM_ID,GPID,LE_Feedback_Code);
/********************************************************/
/* Output the result. */
/********************************************************/
Msg_String = ’System-Subsystem : ’ || BIT(SYS_SUB);
Call CEEMOUT(Msg_String,Msg_Dest,LE_Feedback_Code);
Msg_String = ’Environment Information: ’ || BIT(ENV_INF);
Call CEEMOUT(Msg_String,Msg_Dest,LE_Feedback_Code);
Msg_String = ’Member Languages : ’ || BIT(MEM_ID);
Call CEEMOUT(Msg_String,Msg_Dest,LE_Feedback_Code);
|