Language Environment process control block

Each process is represented by a Process Control Block (PCB). All process resources are anchored, provided for, or can be obtained through the PCB. The PCB is generated during process initialization and deleted during process termination. Fields in the PCB should be used as described in other topics of this information

The following tables show the format of the PCB.
Table 1. Process control block (PCB) field descriptions
Offsets Type Len Name ( * = Reserved) Description
Dec Hex
0 (0) STRUCTURE 76 CEEPCB PCB mapping
0 (0) CHARACTER 76 CEEPCB_EXTERNAL External portion
0 (0) CHARACTER 8 CEEPCBEYE Eyecatcher 'CEEPCB '
8 (8) BITSTRING 1 CEEPCBSYSTM Underlying Operating System
9 (9) BITSTRING 1 CEEPCBHRDWR Underlying Hardware
10 (A) BITSTRING 1 CEEPCBSBSYS Underlying Subsystem
11 (B) BITSTRING 1 CEEPCBFLAG2  
   
 1...  ....
  CEEPCBBIMODAL Bimodal addressing is avail.
   
 .1..  ....
  CEEPCB_LVFORM LIBVEC format 1=stat./0=dynam
   
 ..1.  ....
  CEEPCB_VECTOR Vector hardware available
   
 ...1  ....
  CEEPCB_CL24 CEL Libvec AMODE24 is built
   
 ....  1...
  CEEPCB_OMVS z/OS UNIX is up and available
   
 ....  .1..
  * RESERVED
   
 ....  ..1.
  CEEPCB_PICI PICI environment
   
 ....  ...1
  CEEPCB_REUSE This CCIS process contains a reusable enclave environment
12 (C) ADDRESS 4 CEEPCBDBGEH A(debug event handler)
16 (10) CHARACTER 8 CEEPCBDBGRSVD Reserved for debugger
24 (18) ADDRESS 4 CEEPCBDMEMBR A(process member list)
28 (1C) ADDRESS 4 CEEPCB_ZLOD A(process load routine)
32 (20) ADDRESS 4 CEEPCB_ZDEL A(process delete routine)
36 (24) ADDRESS 4 CEEPCB_ZGETST A(process get storage rtn)
40 (28) ADDRESS 4 CEEPCB_ZFREEST A(process free storage rtn)
44 (2C) ADDRESS 4 CEEPCB_LVTL Address of a Lang Env library table that contains info about Lang Env libvecs, to determine which transfer vector should be used to access a library routine and be signal safed.
48 (30) ADDRESS 4 CEEPCBRCB Address of the RCB
52 (34) ADDRESS 4 CEEPCB_SYSEIB A(CICS® System EIB)
The following three fields are used by the CEEXGPPS (get permanent process storage) macro. This macro allows the member languages to quickly allocate storage at the process level that is freed only by CEL after member process termination.
56 (38) SIGNED 4 CEEPCBPSL Length of perm process stg
60 (3C) ADDRESS 4 CEEPCBPSA Addr of perm process stg
64 (40) ADDRESS 4 CEEPCBPSRA Perm process stg overflow routine address
68 (44) BITSTRING 4 CEEPCB_OMVS_LEVEL z/OS UNIX release level (Multiple bits may be set)
   
 1...  ....
  * Reserved
   
 .1..  ....
  CEEPCB_OMVS_1120 HOM1120 functions are present.
   
 ..1.  ....
  CEEPCB_OMVS_1130 HOM1130 functions are present.
68 (44) BITSTRING 3 * Reserved
72 (48) ADDRESS 4 CEEPCB_CHAIN Pointer to next PCB on PICI environment chain
76 (4C) ADDRESS 4 CEEPCB_VSSFE Address of the stack segment free routine
80 (50) ADDRESS 4 CEEPCBPRFEH Address of profile event handler
84 (54) BITSTRING 1 CEEPCBFLAG6 Additional PCB flags
   
1... ....
4 CEEPCB_ESAME ESAME supported
Start of change End of change Start of change End of change Start of change
.111 ....
End of change
Start of change End of change Start of change*End of change Start of changeReservedEnd of change
Start of change End of change Start of change End of change Start of change
.... 1...
End of change
Start of change End of change Start of changeCEEPCB_SIMDEnd of change Start of changeSIMD supportedEnd of change
Start of change End of change Start of change End of change Start of change
.... .111
End of change
Start of change End of change Start of change*End of change Start of changeReservedEnd of change
85 (55) CHARACTER 3 CEEPCB_RSRVED Reserved
88 (58) ADDRESS 4 * Reserved
92 (5C) ADDRESS 4 CEEPCB_DBGINFO Address of debugger Info block
Table 2. Process control block (PCB) constants
Len Type Value Name Description
Constants
4 DECIMAL 16384 CEEPCB_IS_SIZE Init dummy stk size
4 DECIMAL 2048 CEEPCB_LIS_SIZE Init dummy lib size
CAUTION: CEEPCB_IS_SIZE and CEEPCB_LIS_SIZE must be multiple of doubleword size.
4 DECIMAL 8 CEEPCB_MAXLVTNUM Maximum library transfer vector tables in Lang Env
Declare constants for operating system, hardware, and subsystem CEEPCBSYSTM, CEEPCBHRDWR, CEEPCBSYS
1 DECIMAL 0 CEEPCBSYUND Undefined
1 DECIMAL 1 CEEPCBSYUNS Unsupported
1 DECIMAL 2 CEEPCBSYVM VM
1 DECIMAL 3 CEEPCBSYMVS z/OS Underlying Hardware
1 DECIMAL 0 CEEPCBHWUND Undefined
1 DECIMAL 1 CEEPCBHWUNS Unsupported
1 DECIMAL 2 CEEPCBHW370 System/370 non-X
1 DECIMAL 3 CEEPCBHWXA System/370 XA
1 DECIMAL 4 CEEPCBHWESA System/370 ESA Underlying Subsystem
1 DECIMAL 0 CEEPCBSSUND Undefined
1 DECIMAL 1 CEEPCBSSUNS Unsupported
1 DECIMAL 2 CEEPCBSSNON No subsystem
1 DECIMAL 3 CEEPCBSSTSO TSO
1 DECIMAL 5 CEEPCBSSCIC CICS
Declare constants describing state of process
1 DECIMAL 0 CEEPCBSTATE_INIT Process init
1 DECIMAL 1 CEEPCBSTATE_TERM Process term
1 DECIMAL 2 CEEPCBSTATE_ACTIVE Process active
Table 3. Process control block (PCB) cross reference
Name Hex Offset Hex Value Level
CEEPCB 0   1
CEEPCB_CHAIN 48   3
CEEPCB_CL24 B 10 4
CEEPCB_DBGINFO 5C   3
CEEPCB_ESAME 54 80 4
CEEPCB_EXTERNAL 0   2
CEEPCB_LVFORM B 40 4
CEEPCB_LVTL 2C   3
CEEPCB_OMVS B 08 4
CEEPCB_OMVS_LEVEL 44   3
CEEPCB_OMVS_1120 44 40 4
CEEPCB_OMVS_1130 44 20 4
CEEPCB_PICI B 02 4
CEEPCB_REUSE B 01 4
CEEPCB_SYSEIB 34   3
Start of changeCEEPCB_SIMDEnd of change Start of change54End of change Start of change08End of change Start of change4End of change
CEEPCB_VECTOR B 20 4
CEEPCB_VSSFE 4C   3
CEEPCB_ZDEL 20   3
CEEPCB_ZFREEST 28   3
CEEPCB_ZGETST 24   3
CEEPCB_ZLOD 1C   3
CEEPCBBIMODAL B 80 4
CEEPCBDBGEH C   3
CEEPCBDBGRSVD 10   3
CEEPCBDMEMBR 18   3
CEEPCBEYE 0   3
CEEPCBFLAG2 B   3
CEEPCBFLAG6 54   3
CEEPCBHRDWR 9   3
CEEPCBPRFEH 50   3
CEEPCBPSA 3C   3
CEEPCBPSL 38   3
CEEPCBPSRA 40   3
CEEPCBRCB 30   3
CEEPCBSBSYS A   3
CEEPCBSYSTM 8   3
RESERVED B 04 4
Table 4 describes the PCB fields in more detail.
Table 4. PCB field descriptions
Field Contents
CEEPCBEYE 8-character eyecatcher 'CEEPCB'.
CEEPCBSYSTM Underlying operating system. The value indicates the operating system supporting the active program. The values are defined as follows:
0
Undefined — this value should never occur after initializing Language Environment
1
Unsupported
2
VM/ESA
3
z/OS®
CEEPCBHRDWR Underlying hardware The value indicates the type of hardware on which the program is executing; the values are defined as follows:
0
Undefined — this value should never occur after initializing Language Environment
1
Unsupported
2
System/370, non-XA
3
System/370, XA
4
System/370, ESA
CEEPCBSBSYS Underlying subsystem The value indicates the subsystem, if any, on which the program is executing; the values are defined as follows:
0
Undefined — this value should never occur after initializing Language Environment
1
Unsupported
2
None — the program is not executing under a subsystem according to Language Environment
3
TSO
4
Reserved
5
CICS
6 - 7
Reserved
CEEPCBFLAG2 PCB flag bits; the bits are defined as follows:
0
CEEPCBBIMODAL – When 1, this indicates the hardware is capable of bimodal addressing
1
CEEPCB_LVFORM – Reserved
2
CEEPCB_VECTOR – When 1, the vector facility is available on the hardware
3
CEEPCB_CL24 – LIBVEC for AMODE24 is available
4
CEEPCB_OMVS – z/OS UNIX is up and available
5
Reserved
6
CEEPCB_PICI – PICI environment is in effect
7
CEEPCB_REUSE – When 1, the CICS process contains a reusable enclave environment. This flag is required to indicate how Language Environment will getmain, freemain, load, or delete resources upon requests in a reusable enclave environment. These resources must be freed explicitly during transaction termination.
CEEPCBDBGEH Address of the debug tool event handler. This field holds the address of the debug tool event handler. When this field is zero, a debug tool has not been initialized.
CEEPCBDBGRSVD Reserved for the debug tool's use. A doubleword that is reserved for the debug tool's use. It is zeroed by Language Environment process initialization.
CEEPCBMEMBR Address of the process level member list. An entry is reserved for each member known to Language Environment. There is one member list per process. The process level member list has the same format as the enclave level member list. For details, see Language Environment member list and event handler.
CEEPCB_ZLOD Process level LOAD service. This is the address of a LOAD service. Routines loaded using this service persist across enclaves within this process. For details, see Loading and deleting programs in different environments.
CEEPCB_ZDEL Process level DELETE service. This is the address of a DELETE service. Routines loaded using CEEPCB_ZLOD must be deleted using this service. For details, see Loading and deleting programs in different environments.
CEEPCB_ZGETST Process level GETMAIN service. This is the address of a GETMAIN service. Storage obtained using this service persist across enclaves within this process.
CEEPCB_ZFREEST Process level FREEMAIN service. This is the address of a FREEMAIN service. Storage obtained using CEEPCB_ZGETST must be freed using this service.
CEEPCB_LVTL Address of a Language Environment library vector.
CEEPCBRCB Address of the RCB.
CEEPCB_SYSEIB Address of CICS system EIB.
CEEPCBPSL Length of permanent process storage. This field is used by the CEEXGPPS (get permanent process storage) macro. This macro allows the member languages to quickly allocate storage at the process level that is freed only by Language Environment after member process termination.
CEEPCBPSA Address of permanent process storage. This field is used by the CEEXGPPS (get permanent process storage) macro. This macro allows the member languages to quickly allocate storage at the process level that is freed only by Language Environment after member process termination.
CEEPCBPSRA Permanent process storage overflow routine address table which contains information for all Language Environment LIBVECs that allow signal safing of Language Environment library for asynchronous signals. This field is used by the CEEXGPPS (get permanent process storage) macro. This macro allows the member languages to quickly allocate storage at the process level that is freed only by Language Environment after member process termination.
CEEPCB_OMVS_LEVEL z/OS UNIX release level. The flags are as follows:
0
Reserved
1
HOM1120 functions are present
2
HOM1130 functions are present
CEEPCB_CHAIN Used to run the PICI environment chain; it will be NULL when there is no next environment in the chain.
CEEPCB_VSSFE Address of the stack segment free routine.
CEEPCBPRFEH Address of the profile event handler
CEEPCBFLAG6 Additional PCB flag bits. The bits are defined as follows:
0
CEEPCB_ESAME
1
Level 1 tracing on
2
Level 2 tracing on
3
Debugger was HFS loaded
Start of change4End of change
Start of changeSIMD supportedEnd of change
Start of change5- 7End of change
Start of changeReservedEnd of change
CEEPCB_DBGINFO Address of the debugger info block.