Language Environment common anchor area

Each thread is represented by a common anchor area (CAA). It is the central communication area for the environment. All thread- and enclave-related resources are anchored, provided for, or can be obtained through the CAA. The CAA is generated during thread initialization and deleted during thread termination. The CAA points to the encompassing Enclave Data Block (EDB).

The CAA is addressed by R12 when calling Language Environment-participating external routines. This requirement is relaxed when calling internal routines within a given HLL.

Fields in the CAA should be used as described in other topics of this information. In particular, fields should not be modified and routine addresses should not be used as entry points, except as specified. Fields marked reserved exist for migration of specific languages, or internal use by Language Environment. Their location in the CAA is defined by Language Environment, but their use is not. They should be neither used nor referenced except as specified by the language that defines them.

The following tables show the format of the CAA:
  • Table 1 shows the CAA field descriptions.
  • Table 2 shows the CAA constants.
  • Table 3 shows the CAA cross reference information.
Table 1. Common anchor area (CAA) field descriptions
Offsets Type Len Name (Dim) ( * = Reserved) Description
Dec Hex
0 (0) STRUCTURE 976 CEECAA CAA mapping
0 (0) CHARACTER 976 CEECAA_EXTERNAL External portion
0 (0) BITSTRING 1 CEECAAFLAG0 CAA Flags
   
1111  11..
  * Reserved
   
 ....  ..1.
  CEECAAXHDL Bypass exception handling
   
 ....  ...1
  * Reserved
1 (1) BITSTRING 1 * Reserved
   
 11..  ....
  * Reserved
   
 ..1.  ....
  CEECAADBGINIT Debugger is init'd
   
 ...1  1111
  * Reserved
2 (2) BITSTRING 1 CEECAALANGP PL/I Compatibility flags
   
 1111  ....
  * Reserved
   
 ....  1...
  CEECAATHFN If set, NO PL/I FINISH on-unit is active
   
 ....  .111
  * Reserved
3 (3) CHARACTER 5 * Reserved
8 (8) ADDRESS 4 CEECAABOS Start of current storage seg
12 (C) ADDRESS 4 CEECAAEOS End of current storage seg
16 (10) CHARACTER 52 * Reserved
68 (44) SIGNED 4 CEECAATORC Thread level ret code
68 (44) SIGNED 2 *  
70 (46) SIGNED 2 CEECAATURC  
72 (48) CHARACTER 44 * Reserved
116 (74) ADDRESS 4 CEECAATOVF Stack overflow rtn
120 (78) CHARACTER 168 * Reserved
288 (120) ADDRESS 4 CEECAAATTN Addr of CEL attention handler
292 (124) CHARACTER 56 * Reserved
348 (15C) ADDRESS 4 CEECAAHLLEXIT Set by CEEBINT
Debugger controls
352 (160) CHARACTER 56 * Reserved
408 (198) BITSTRING 12 CEECAAHOOK Code to pass control to the debugger
420 (1A4) ADDRESS 4 CEECAADIMA A(debugger entry)
Each of the following hook switches will contain: DS X'0700',S(CEECAAUDHOOK) When the hook switch is activated, the X'0700' is changed to X'45C0', so it becomes: BAL 12,CEECAAUDHOOK
424 (1A8) CHARACTER 72 CEECAAHOOKS Hook control words for debug
424 (1A8) CHARACTER 4 CEECAAALLOC ALLOCATE descr. built
428 (1AC) CHARACTER 4 CEECAASTATE New statement begins
432 (1B0) CHARACTER 4 CEECAAENTRY Block entry
436 (1B4) CHARACTER 4 CEECAAEXIT Block exit
440 (1B8) CHARACTER 4 CEECAAMEXIT Multiple block exit
444 (1BC) CHARACTER 32 CEECAAPATHS PATH hooks
444 (1BC) CHARACTER 4 CEECAALABEL At a label constant
448 (1C0) CHARACTER 4 CEECAABCALL Before CALL
452 (1C4) CHARACTER 4 CEECAAACALL After CALL
456 (1C8) CHARACTER 4 CEECAADO DO block starting
460 (1CC) CHARACTER 4 CEECAAIFTRUE True part of IF
464 (1D0) CHARACTER 4 CEECAAIFFALSE False part of IF
468 (1D4) CHARACTER 4 CEECAAWHEN WHEN group starting
472 (1D8) CHARACTER 4 CEECAAOTHER OTHERWISE group
476 (1DC) CHARACTER 4 CEECAACGOTO GOTO hook for C
480 (1E0) CHARACTER 4 CEECAARSVDH1 Reserved hook
484 (1E4) CHARACTER 4 CEECAARSVDH2 Reserved hook
488 (1E8) CHARACTER 4 CEECAAMULTEVT Multiple event hook
492 (1EC) CHARACTER 4 CEECAAMEVMASK Multiple event hook mask
496 (1F0) CHARACTER 80 CEECAAMEMBER_AREA  
496 (1F0) CHARACTER 4 CEECAACGENE C/370™ CGENE
500 (1F4) ADDRESS 4 CEECAACRENT C or C++ writable static
504 (1F8) CHARACTER 8 CEECAACFLTINIT Convert fixed to float cfltinit is used by compiled code
512 (200) ADDRESS 4 CEECAACPRMS Parameters passed to IBMBLIIA cprms is reference by user's code offset: 4*128
516 (204) SIGNED 4 CEECAAC_RTL Combination of 24 unique C/370 trc types & 8 common trc types
520 (208) ADDRESS 4 CEECAACTHD C/370 CTHD
524 (208) ADDRESS 4 CEECAACURRFECB  
528 (210) ADDRESS 4 CEECAAEDCV C/C++ runtime library vector table
532 (214) ADDRESS 4 CEECAACPCB Reserved
536 (218) ADDRESS 4 CEECAACEDB C/370 CEDB
540 (21C) CHARACTER 3 * Reserved
543 (21F) CHARACTER 1 CEECAASPCFLAG3 Used for SPC
544 (220) ADDRESS 4 CEECAACIO Address of cio
548 (224) CHARACTER 4 CEECAAFDSETFD Used by FD_* macros
552 (228) CHARACTER 2 CEECAAFCBMUTEXOK  
554 (22A) CHARACTER 2 * Reserved
556 (22C) CHARACTER 4 CEECAATC16  
560 (230) SIGNED 4 CEECAATC17  
564 (234) ADDRESS 4 CEECAAEDCOV C/370 Open Libvec
568 (238) SIGNED 4 CEECAACTOFSV  
572 (23C) ADDRESS 4 CEECAATRTSPACE C/370 Open Libvec
576 (240) CHARACTER 24 * Reserved
600 (258) CHARACTER 36 CEECAA_TCASRV TCA Service Rtn Vctr
600 (258) ADDRESS 4 CEECAA_TCASRV_USERWORD  
604 (25C) ADDRESS 4 CEECAA_TCASRV_WORKAREA  
608 (260) ADDRESS 4 CEECAA_TCASRV_GETMAIN  
612 (264) ADDRESS 4 CEECAA_TCASRV_FREEMAIN  
616 (268) ADDRESS 4 CEECAA_TCASRV_LOAD  
620 (26C) ADDRESS 4 CEECAA_TCASRV_DELETE  
624 (270) ADDRESS 4 CEECAA_TCASRV_EXCEPTION  
628 (274) ADDRESS 4 CEECAA_TCASRV_ATTENTION  
632 (278) ADDRESS 4 CEECAA_TCASRV_MESSAGE  
636 (27C) CHARACTER 4 * Reserved
640 (280) ADDRESS 4 CEECAALWS Addr of PL/I LWS
644 (284) ADDRESS 4 CEECAASAVR Register save
648 (288) CHARACTER 36 * Reserved
684 (2AC) BITSTRING 1 CEECAASYSTM Underlying Op Sys
685 (2AD) BITSTRING 1 CEECAAHRDWR Underlying Hardware
686 (2AE) BITSTRING 1 CEECAASBSYS Underlying Subsystem
687 (2AF) BITSTRING 1 CEECAAFLAG2  
   
 1...  ....
  CEECAABIMODAL Bimodal addressing
   
 .1..  ....
  CEECAA_VECTOR Vector hardware avail
   
 ..1.  ....
  CEECAATIP Thread terminating
   
 ...1  ....
  CEECAA_THREAD_INITIAL Initial thread
   
 ....  1...
  CEECAA_TRACE_ACTIVE Library trace is active (the TRACE runtime option was set)
   
 ....  .1..
  CEECAA_ALTSTK_ACTIVE Alternate stack active
   
 ....  ..1.
  CEECAA_ENQ_WAIT_ INTERRUPTABLE  
   
 ....  ...1
  CEECAA_USRSTK_ACTIVE C-RTL context switching user stack active
688 (2B0) UNSIGNED 1 CEECAALEVEL CEL level identifier
689 (2B1) BITSTRING 1 CEECAA_PM Image of current program mask
690 (2B2) BIT (16) 2 CEECAA_INVAR Field that is at the same fixed offset in 31-bit and 64-bit CAAs
691 (2B3) BIT   * Reserved.
692 (2B4) ADDRESS 4 CEECAAGETLS Addr of CEL library stack mgr
696 (2B8) ADDRESS 4 CEECAACELV Addr of CEL LIBVEC
700 (2BC) ADDRESS 4 CEECAAGETS Addr of CEL get stack stg rtn
704 (2C0) ADDRESS 4 CEECAALBOS Start of library stack stg seg
708 (2C4) ADDRESS 4 CEECAALEOS End of library stack stg seg
712 (2C8) ADDRESS 4 CEECAALNAB Next available byte of lib stg
716 (2CC) ADDRESS 4 CEECAADMC Addr ESPIE Devil-May-Care rtn
720 (2D0) SIGNED 4 CEECAACD Most recent ABEND completion code
720 (2D0) SIGNED 4 CEECAAABCODE  
724 (2D4) SIGNED 4 CEECAARS Most recent ABEND reason code
724 (2D4) SIGNED 4 CEECAARSNCODE  
728 (2D8) ADDRESS 4 CEECAAERR Addr of the current CIB
732 (2DC) ADDRESS 4 CEECAAGETSX Addr of CEL stack stg extender
736 (2E0) ADDRESS 4 CEECAADDSA Addr of the dummy DSA
740 (2E4) SIGNED 4 CEECAASECTSIZ Vector Section Size
744 (2E8) SIGNED 4 CEECAAPARTSUM Vector Partial Sum Number
748 (2EC) SIGNED 4 CEECAASSEXPNT Log of Vector Section Size
752 (2F0) ADDRESS 4 CEECAAEDB A(EDB)
756 (2F4) ADDRESS 4 CEECAAPCB A(PCB)
The following two fields are used for validation of the CAA.
760 (2F8) ADDRESS 4 CEECAAEYEPTR Addr of CAA eyecatcher
764 (2FC) ADDRESS 4 CEECAAPTR Addr of this CAA
768 (300) ADDRESS 4 CEECAAGETS1 DSA alloc - R13 not DSA addr
772 (304) ADDRESS 4 CEECAASHAB ABEND shunt routine address
776 (308) ADDRESS 4 CEECAAPRGCK Pgm interrupt code for CAADMC
780 (30C) BITSTRING 1 CEECAAFLAG1 CAA Flags 1
   
1...  ....
  CEECAASORT Call to DF/SORT is active
   
.1.. ....
  CEECAA_USE_OLD_STK Use old stack
   
..1. ....
  CEECAACICS_EXT_REG ERTLI CICS® extended register interface in effect
   
...1 ....
  CEECAASHAB_RECOVER_IN_ESTAE_MODE When ON, Language Environment® will set up for retry to the abend shunt routine only if the PSW key that was in effect at the time the Language Environment ESTAE or user-provided error recovery routine was established matches the IPK result stored in CEECAASHAB_KEY.
   
....  1...
  * Reserved
   
....  .1..
  CEECAA_FETCH_RELES_IN_PROGRESS CEEFETCH or CEERELES in progress on this thread.
   
....  ..11
  * Reserved
781 (30D) CHARACTER 1 CEECAASHAB_KEY IPK result when CEECAASHAB is set.
782 (30E) CHARACTER 2 * Reserved
784 (310) SIGNED 4 CEECAAURC Thread level return code
The following four fields are for FASTLINK capability.
788 (314) ADDRESS 4 CEECAAESS End of current user stack
792 (318) ADDRESS 4 CEECAALESS End of current library stack
796 (31C) ADDRESS 4 CEECAAOGETS Overflow user seg from FASTLINK
800 (320) ADDRESS 4 CEECAAOGETLS Overflow lib seg from FASTLINK
The following field contains the Pre-Init Compatibility Control Block address.
804 (324) ADDRESS 4 CEECAAPICICB Addr of pre-init compat cb
The following field is for FASTLINK capability.
808 (328) ADDRESS 4 CEECAAOGETSX User DSA ext from FASTLINK
812 (32C) SIGNED 4 * Fields used by GOTO and CEEHTRAV
812 (32C) SIGNED 2 CEECAAGOSMR When set will be used to indicate additional frames to skip
814 (32E) SIGNED 2 * Indicate additional frames to skip.
816 (330) ADDRESS 4 CEECAALEOV Addr of Lang Env/z/OS UNIX LIBVEC
820 (334) SIGNED 4 CEECAA_SIGSCTR SIGSAFE counter
824 (338) BITSTRING 4 CEECAA_SIGSFLG SIGSAFE flags
   
 1...  ....
  CEECAA_SIGPUTBACK Signal putback
   
 .1..  ....
  CEECAA_SA_RESTART SA_RESTART loopback is required this time
   
 ..1.  ....
  * Reserved
   
 ...1  ....
  CEECAA_SIGSAFE It is safe to unconditionally accept delivery of a synchronous signal
   
 ....  1...
  CEECAA_CANCELSAFE It is safe to unconditionally accept delivery of a synchronous cancel
   
 ....  .1..
  CEECAA_SIGRESYNCH One or more synchronous signals may have been recently put back the last time a signal was resolicited while returning from library to user code
   
 ....  ..1.
  CEECAA_FRZ_UNSAFE It is unsafe to freeze the thread
   
 ....  ...1
  CEECAA_NOAPPREGS User application registers may be saved in a nonstandard place
825 (339)
1... ....
  CEECAA_EINTR_RSOL Secondary signal resolicit in progress after EINTR from inner function
   
.1.. ....
  CEECAA_EINTR_PUTB Secondary re-solicited signal has been put back
   
..1. ....
  CEECAA_EINTR_REST User catcher returned after catching secondary re-solicited signal with SA_RESTART in effect
   
...1 ....
  CEECAA_EINTR_SIGG "Stray" signal interrupted CEEOSIGG while secondary signal re-solicitation was in progress
   
.... 1111
    Reserved.
826 (33A) BIT (16) 2 * Reserved.
828 (33C) CHARACTER 8 CEECAATHDID Thread ID
836 (344) ADDRESS 4 CEECAA_DCRENT Read/write static external anchor
840 (348) ADDRESS 4 CEECAA_DANCHOR Per-thread anchor
844 (34C) ADDRESS 4 CEECAA_CTOC TOC anchor for CRENT
848 (350) ADDRESS 4 CEECAARCB A(RCB)
852 (354) SIGNED 4 CEECAACICSRSN CICS reason code from member language
856 (358) ADDRESS 4 CEECAAMEMBR Address of thread-level
860 (35C) ADDRESS 4 CEECAA_SIGNAL_STATUS Signal status of the terminating thread member list
864 (360) ADDRESS 4 CEECAA_HCOM_REG7 HCOM saved R7
864 (360) ADDRESS 4 CEECAA_HCOM_REG14 HCOM saved R14
868 (364) ADDRESS 4 CEECAA_STACKFLOOR Lowest usable addr in XP stack
872 (368) ADDRESS 4 CEECAAHPGETS XP stack extension rtn
876 (36C) ADDRESS 4 CEECAAEDCHPXV C/C++ XPLINK libvec
880 (370) ADDRESS 4 CEECAAFOR1 Reserved for FORTRAN
884 (374) ADDRESS 4 CEECAAFOR2 Reserved for FORTRAN
888 (378) ADDRESS 4 CEECAATHREADHEAPID Thread heapid
892 (37C) CHARACTER 4 CEECAA_SYS_RTNCODE System (kernel) return code
896 (380) CHARACTER 4 CEECAA_SYS_RSNCODE System (kernel) reason code
900 (384) ADDRESS 4 CEECAAGETFN Address of the WSA swap routine
904 (388) CHARACTER 8 CEECAA_LER4 Reserved
912 (390) ADDRESS 4 CEECAASIGNGPTR Pointer to 'signam' external variable in a C application
916 (394) SIGNED 4 CEECAASIGNG Value of sign of lgamma() -1 - negative sign 0 - zero +1 - positive sign
920 (398) ADDRESS 4 CEECAA_FORDBG Ptr to AFHDBHIM - FORTRAN hook interface
924 (39C) BITSTRING 1 CEECAAAB_STATUS Validity flags
   
 1...  ....
  CEECAAAB_GR0_VALID CEECAAAB_GR0 is valid
   
 .1..  ....
  CEECAAAB_ICD1_VALID CEECAAAB_ICD1 is valid
   
 ..1.  ....
  CEECAAAB_ABCC_VALID CEECAAAB_ABCC is valid
   
 ...1  ....
  CEECAAAB_CRC_VALID CEECAAAB_CRC is valid
   
 ....  1...
  CEECAAAB_GR15_VALID CEECAAAB_GR15 is valid
   
 ....  .111
  * Reserved
925 (39D) UNSIGNED 1 CEECAA_STACKDIRECTION Stack direction
926 (39E) BITSTRING 2 * Reserved
928 (3A0) SIGNED 4 CEECAAAB_GR0 Reg 0 at the time of abend
932 (3A4) SIGNED 4 CEECAAAB_ICD1 SDWAICD1
936 (3A8) SIGNED 4 CEECAAAB_ABCC SDWAABCC
940 (3AC) SIGNED 4 CEECAAAB_CRC SDWACRC
944 (3B0) ADDRESS 4 CEECAAAGTS Entry point of CEEVAGTS routine
948 (3B4) ADDRESS 4 CEECAA_LER5N1 Reserved
952 (3B8) ADDRESS 4 CEECAAHERP Address of CEEHERP routine
956 (3BC) ADDRESS 4 CEECAAUSTKBOS Start of user stack segment
960 (3C0) ADDRESS 4 CEECAAUSTKEOS End of user stack segment
964 (3C4) ADDRESS 4 CEECAAUSERRTN@ Address of thread start routine. Undefined on IPT or prior to thread init event.
968 (3C8) CHARACTER 8 CEECAAUDHOOK Hook swapping XPLINK
976 (3D0) ADDRESS 4 CEECAACEL_HPXV_B Address of XPLINK compat vector for Base library
980 (3D4) ADDRESS 4 CEECAACEL_HPXV_M Address of XPLINK compat vector for Math library
984 (3D8) ADDRESS 4 CEECAACEL_HPXV_L Address of XPLINK compat vector for Locale library
988 (3DC) ADDRESS 4 CEECAACEL_HPXV_O Address of XPLINK compat vector for Open library
992 (3E0) ADDRESS 4 CEECAACEL4VEC3 Address of 3rd C-RTL library vector
996 (3E4) ADDRESS 4 CEECAA_CEEDLLF Address of the newest CEEDLLF control block
1000 (3E8) ADDRESS 4 CEECAA_SAVSTACK Saved Stack Pointer when OS_NOSTACK linkage routine is called.
1004 (3EC) CHARACTER 8 * Reserved
1008 (3F0) CHARACTER 4 CEECAA_USER_WORD 4-byte user field available for application use
1012 (3F4) ADDRESS 4 CEECAA_SAVSTACK_ASYNC When the value is not zero, CEECAA_SAVSTACK_ASYNC contains the address of a 4-byte field provided by the application that holds the Saved Stack Pointer when the register for the stack pointer is being used for other purposes. When the value is zero, CEECAA_SAVSTACK_ASYNC does not contain that address.
Table 2. Common anchor area (CAA) constants
Len Type Value Name Description
Declare constants for operating system, hardware, and subsystem CEECAASYSTM, CEECAAHRDWR, CEECAASBSYS
1 DECIMAL 0 CEECAASYUND Undefined
1 DECIMAL 1 CEECAASYUNS Unsupported
1 DECIMAL 2 CEECAASYVM VM
1 DECIMAL 3 CEECAASYMVS z/OS Underlying Hardware
1 DECIMAL 0 CEECAAHWUND Undefined
1 DECIMAL 1 CEECAAHWUNS Unsupported
1 DECIMAL 2 CEECAAHW370 System/370 non-XA
1 DECIMAL 3 CEECAAHWXA System/370 XA
1 DECIMAL 4 CEECAAHWESA System/370 ESA Underlying Subsystem
1 DECIMAL 0 CEECAASSUND Undefined
1 DECIMAL 1 CEECAASSUNS Unsupported
1 DECIMAL 2 CEECAASSNON No subsystem
1 DECIMAL 3 CEECAASSTSO TSO
1 DECIMAL 5 CEECAASSCIC CICS
Declare constants for stack direction CEECAA_STACKDIRECTION
1 DECIMAL 0 CEECAASTACK_UP UP
1 DECIMAL 1 CEECAASTACK_DOWN DOWN
Table 3. Common anchor area (CAA) cross reference
Name Hex Offset Hex Value Level
CEECAA 0   1
CEECAA_CANCELSAFE 338 08 4
CEECAA_CTOC 34C   3
CEECAA_DANCHOR 348   3
CEECAA_DCRENT 344   3
CEECAA_ENQ_WAIT_INTERRUPTABLE 2AF 02 4
CEECAA_EXTERNAL 0   2
CEECAA_FORDBG 398   3
CEECAA_FRZ_UNSAFE 338 02 4
CEECAA_HCOM_REG14 360   3
CEECAA_HCOM_REG7 360   4
CEECAA_INVAR 2B2   3
CEECAA_LER4 388   3
CEECAA_LER5 3BC   3
CEECAA_LER5N1 3B4   3
CEECAA_NOAPPREGS 338 01 4
CEECAA_PM 2B1   3
CEECAA_SA_RESTART 338 40 4
CEECAA_SAVSTACK 3E8   4
CEECAA_SAVSTACK_ASYNC 3F4   4
CEECAA_SIGNAL_STATUS 35C   3
CEECAA_SIGPUTBACK 338 80 4
CEECAA_SIGRESYNCH 338 04 4
CEECAA_SIGSAFE 338 10 4
CEECAA_SIGSCTR 334   3
CEECAA_SIGSFLG 338   3
CEECAA_STACKDIRECTION 39D   3
CEECAA_STACKFLOOR 364   3
CEECAA_TCASRV 258   3
CEECAA_TCASRV_ATTENTION 274   4
CEECAA_TCASRV_DELETE 26C   4
CEECAA_TCASRV_EXCEPTION 270   4
CEECAA_TCASRV_FREEMAIN 264   4
CEECAA_TCASRV_GETMAIN 260   4
CEECAA_TCASRV_LOAD 268   4
CEECAA_TCASRV_MESSAGE 278   4
CEECAA_TCASRV_USERWORD 258   4
CEECAA_TCASRV_WORKAREA 25C   4
CEECAA_THREAD_INITIAL 2AF 10 4
CEECAA_TRACE_ACTIVE 2AF 08 4
CEECAA_USE_OLD_STK      
CEECAA_USER_WORD 3F0   3
CEECAA_VECTOR 2AF 40 4
CEECAAAB_ABCC 3A8   3
CEECAAAB_ABCC_VALID 39C 20 4
CEECAAAB_CRC 3AC   3
CEECAAAB_CRC_VALID 39C 10 4
CEECAAAB_GR0 3A0   3
CEECAAAB_GR0_VALID 39C 80 4
CEECAAAB_GR15_VALID 39C 08 4
CEECAAAB_ICD1 3A4   3
CEECAAAB_ICD1_VALID 39C 40 4
CEECAAAB_STATUS 39C   3
CEECAAABCODE 2D0   4
CEECAAACALL 1C4   5
CEECAAAGTS 3B0   3
CEECAAALLOC 1A8   4
CEECAAATTN 120   3
CEECAABCALL 1C0   5
CEECAABIMODAL 2AF 80 4
CEECAABOS 8   3
CEECAACD 2D0   3
CEECAACEDB 218   4
CEECAA_CEEDLLF 3E4   3
CEECAACEL4VEC3 3E0   3
CEECAACEL_HPXV_B 3D0   3
CEECAACEL_HPXV_M 3D4   3
CEECAACEL_HPXV_L 3D8   3
CEECAACEL_HPXV_O 3DC   3
CEECAACELV 2B8   3
CEECAACFLTINIT 1F8   4
CEECAACGENE 1F0   4
CEECAACGOTO 1DC   4
CEECAACICSRSN 354   3
CEECAACIO 220   4
CEECAACPCB 214   4
CEECAACPRMS 200   4
CEECAACRENT 1F4   4
CEECAACTHD 208   4
CEECAACURRFECB 20C   4
CEECAADBGINIT 1 20 4
CEECAADDSA 2E0   3
CEECAADIMA 1A4   3
CEECAADMC 2CC   3
CEECAADO 1C8   5
CEECAAEDB 2F0   3
CEECAAEDCHPXV 36C   3
CEECAAEDCOV 234   4
CEECAAEDCV 210   4
CEECAAENTRY 1B0   4
CEECAAEOS C   3
CEECAAERR 2D8   3
CEECAAESS 314   3
CEECAAEXIT 1B4   4
CEECAAEYEPTR 2F8   3
CEECAAFCBMUTEXOK 228   4
CEECAAFDSETFD 224   4
CEECAAFLAG0 0   3
CEECAAFLAG1 30C   3
CEECAAFLAG2 2AF   3
CEECAAFOR1 370   3
CEECAAFOR2 374   3
CEECAAGETFN 384   3
CEECAAGETLS 2B4   3
CEECAAGETS 2BC   3
CEECAAGETSX 2DC   3
CEECAAGETS1 300   3
CEECAAGOSMR 32C   4
CEECAAHERP 3B8   3
CEECAAHLLEXIT 15C   3
CEECAAHOOK 198   3
CEECAAHOOKS 1A8   3
CEECAAHPGETS 368   3
CEECAAHRDWR 2AD   3
CEECAAIFFALSE 1D0   5
CEECAAIFTRUE 1CC   5
CEECAALABEL 1BC   5
CEECAALANGP 2   3
CEECAALBOS 2C0   3
CEECAALEOS 2C4   3
CEECAALEOV 330   3
CEECAALESS 318   3
CEECAALEVEL 2B0   3
CEECAALNAB 2C8   3
CEECAALWS 280   3
CEECAAMEMBER_AREA 1F0   3
CEECAAMEMBR 358   3
CEECAAMEXIT 1B8   4
CEECAAOGETLS 320   3
CEECAAOGETS 31C   3
CEECAAOGETSX 328   3
CEECAAOTHER 1D8   5
CEECAAPARTSUM 2E8   3
CEECAAPATHS 1BC   4
CEECAAPCB 2F4   3
CEECAAPICICB 324   3
CEECAAPRGCK 308   3
CEECAAPTR 2FC   3
CEECAARCB 350   3
CEECAARS 2D4   3
CEECAARSNCODE 2D4   4
CEECAARSVDH1 1E0   4
CEECAARSVDH2 1E4   4
CEECAARSVDH3 1E8   4
CEECAARSVDH4 1EC   4
CEECAASAVR 284   3
CEECAASBSYS 2AE   3
CEECAASECTSIZ 2E4   3
CEECAASHAB 304   3
CEECAASHAB_KEY 3D0   2
CEECAASIGNG 394   3
CEECAASIGNGPTR 390   3
CEECAASORT 30C 80 4
CEECAASPCFLAG3 21F   4
CEECAASSEXPNT 2EC   3
CEECAASTATE 1AC   4
CEECAASYSTM 2AC   3
CEECAATC16 22C   4
CEECAATC17 230   4
CEECAATHDID 33C   3
CEECAATHFN 2 08 4
CEECAATHREADHEAPID 378   3
CEECAATIP 2AF 20 4
CEECAATORC 44   3
CEECAATOVF 74   3
CEECAATURC 46   4
CEECAAUDHOOK 3C8   3
CEECAATRTSPACE 23C   4
CEECAAURC 310   3
CEECAAUSTKBOS 3BC   3
CEECAAUSTKEOS 3C0   3
CEECAAWHEN 1D4   5
CEECAAXHDL 0 02 4

CAA fields

The fields are defined as follows:
CEECAAFLAG0
CAA flag bits; the bits are defined as follows:
0-5
Reserved
6
CEECAAXHDL: a flag that is used by the exception handler. If the flag is set to 1, the application requires immediate return/percolation to the system on any interrupt or exception handler event.
7
Reserved
CEECAALANGP
PL/I language compatibility flags external to Language Environment; the bits are defined as follows:
0-3
Reserved
4
CEECAATHFN : A flag set by PL/I to indicate a PL/I FINISH ON UNIT is active. If flag is set to 1, then NO PL/I FINISH ON UNIT is active.
5-7
Reserved
CEECAABOS
Start of the current storage segment. This field is initially set during thread initialization. It indicates the start of the current stack storage segment. It is altered when the current stack storage segment is changed.
CEECAAEOS
This field is used to determine if a stack overflow routine must be called when allocating storage from the user stack. Normally, the value of this field will represent the end of the current user stack segment. However, its value can also be zero to force the call of a stack overflow routine for every allocation of storage from the user stack. This field is used by function prologs that do not use FASTLINK linkage conventions.
CEECAATORC
Thread level return code. The thread level return code set by CEESRC callable service.
CEECAATOVF
Address of stack overflow routine. This routine is called when there is no space available in the current stack extension to allocate a new stack frame. The routine allocates a new stack extension, updates the CEECAABOS and CEECAAEOS fields in the CAA, and returns the DSA address in the stack extension.
CEECAAATTN
Address of the Language Environment attention handling routine, which supports the polling code convention of Language Environment for attention processing.
CEECAAHLLEXIT
Exit list control block address. Exit list control block address as passed back from the HLL user exit in the A_exit parameter. For more information, see z/OS Language Environment Programming Guide.
CEECAAHOOK
Hook code sequence. CEECAAHOOK contains the following code sequence:
ST   12,CEEDSARENT    Put return addr into DSA
BALR 12,0             Get addressability
L    12,CEECAADIMA-*(,12)  Get A(CEECAADIMADDR)
BALR 12,12            Go with 12 the base reg.
 
CEECAADIMA
DIM address. Address of the Debugger Interface Module (DIM)
CEECAAHOOKS
Hook area. This is the start of 18 fullword execute hooks. Language Environment initializes each fullword to X'0700',S(CEECAAUDHOOK). The hooks can be altered to support various debugger hook mechanisms such as the EXecute hooks that Debug Tool provides.
CEECAAALLOC
ALLOCATE description built hook.
CEECAASTATE
New statement begins hook.
CEECAAENTRY
Block entry hook.
CEECAAEXIT
Block exit hook.
CEECAAMEXIT
Multiple block exit hook.
CEECAAPATHS
PATH hook.
CEECAALABEL
At a label constant hook.
CEECAABCALL
Before CALL hook.
CEECAACALL
After CALL hook.
CEECAADO
DO block starting hook.
CEECAAIFTRUE
True part of IF hook.
CEECAAIFFALSE
False part of IF hook.
CEECAAWHEN
WHEN group starting hook.
CEECAAOTHER
OTHERWISE group hook.
CEECAAGOTO
GOTO hook for C hook.
CEECAARSVDH1
Reserved hook.
CEECAARSVDH2
Reserved hook.
CEECAAMULTEVT
Multiple event hook
CEECAAMEVMASK
Multiple event hook mask
CEECAACGENE
C/370 CGENE
CEECAACRENT
C or C++ writable static.
CEECAACFLTINIT
Convert fixed to float cfltinit is used by compiled code
CEECAACPRMS
Parameters passed to IBMBLIIA cprms is reference by user's code offset: 4*128
CEECAAC_RTL
Combination of 24 unique C/370 trc types & 8 common trc types
CEECAACTHD
C/370 CTHD
CEECAACURRFECB
CEECAAEDCV
Pointer to the C/370 vector table.
CEECAACPCB
Reserved
CEECAACEDB
C/370 CEDB
CEECAASPCFLAG3
Used for SPC
CEECAACIO
Address of cio
CEECAAFDSETFD
Used by FD_* macros
CEECAAFCBMUTEXOK
CEECAATC16
CEECAATC17
CEECAAEDCOV
C/370 Open Libvec
CEECAACTOFSV
CEECAATRTSPACE
C/370 Open Libvec
CEECAA_TCASRV
TCA service routine vector, which contains the following fullword address pointers:
  • CEECAA_TCASRV_USERWORD
  • CEECAA_TCASRV_WORKAREA
  • CEECAA_TCASRV_GETMAIN
  • CEECAA_TCASRV_FREEMAIN
  • CEECAA_TCASRV_LOAD
  • CEECAA_TCASRV_DELETE
  • CEECAA_TCASRV_EXCEPTION
  • CEECAA_TCASRV_ATTENTION
  • CEECAA_TCASRV_MESSAGE
CEECAALWS
Address of PL/I Language Working Space.
CEECAASAVR
Register save area.
CEECAASYSTM
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®
CEECAAHRDWR
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
CEECAASBSYS
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
IMS™
5
CICS
CEECAAFLAG2
CAA Flag 2. The bits are defined as follows:
0
Set if bimodal addressing
1
Set if vector hardware
2
Thread terminating
3
Initial thread
4
Library trace is active; the TRACE runtime option was set
5
Reserved
6
Thread is in an enqueue wait
7
Reserved
CEECAALEVEL
Language Environment level identifier. This contains a unique value that identifies each release of Language Environment. This number is incremented for each new release of Language Environment. Beginning with 10, the version and release numbers are the same as OS/390® version and release numbers. The values are defined as follows:
1
IBM® SAA AD/Cycle LE/370 V1 R1
2
IBM SAA AD/Cycle LE/370 V1 R2
3
IBM SAA AD/Cycle LE/370 V1 R3
4
IBM Language Environment for MVS™ & VM V1 R4
5
OS/390 Language Environment V1 R5
6
OS/390 Language Environment V1 R6
7
OS/390 Language Environment V1 R7
8
OS/390 Language Environment V1 R8
9
OS/390 Language Environment V1 R9
10
OS/390 Language Environment V2 R7
11
OS/390 Language Environment V2 R8
12
OS/390 Language Environment V2 R9
13
OS/390 Language Environment V2 R10
14
z/OS Language Environment V1 R2
15
z/OS Language Environment V1 R3
16
z/OS Language Environment V1 R4
17
z/OS Language Environment V1 R5
18
z/OS Language Environment V1 R6
19
z/OS Language Environment V1 R7
20
z/OS Language Environment V1 R8
21
z/OS Language Environment V1 R9
22
z/OS Language Environment V1 R10
23
z/OS Language Environment V1 R11
24
z/OS Language Environment V1 R12
25
z/OS Language Environment V1 R13
26
z/OS Language Environment V2 R1
Start of change27End of change
Start of changez/OS Language Environment V2 R2End of change
CEECAA_PM
Program mask.
CEECAA_INVAR
Field that is at the same fixed offset in 31-bit and 64-bit CAAs
CEECAAGETLS
Address of stack overflow for library routines.
CEECAACELV
Address of the Language Environment library vector. This field is used to locate dynamically loaded Language Environment routines.
CEECAAGETS
Address of the Language Environment prolog stack overflow routine. The address of the Language Environment get stack storage routine is included for fast reference in prolog code.
CEECAALBOS
Start of the library stack storage segment. This field is initially set during thread initialization. It indicates the start of the library stack storage segment. It is altered when the library stack storage segment is changed.
CEECAALEOS
This field is used to determine if a stack overflow routine must be called when allocating storage from the library stack. Normally, the value of this field will represent the end of the current library stack segment. However, its value can also be zero to force the call of a stack overflow routine for every allocation of storage from the library stack. This field is used by function prologs that do not use FASTLINK linkage conventions.
CEECAALNAB
Next available library stack storage byte. This contains the address of the next available byte of storage on the library stack. It is modified when library stack storage is obtained or released.
CEECAADMC
Language Environment shunt routine address. Its value is initially set to zero during thread initialization. If it is nonzero, this is the address of a routine used in specialized exception processing. For more information, see z/OS Language Environment Programming Guide.
CEECAAACD
Most recent CAASHAB abend code.
CEECAAABCODE
Most recent abend completion CDE.
CEECAAARS
Most recent CAASHAB reason code.
CEECAAARSNCODE
Most recent abend reason code.
CEECAAERR
Address of the current CEECIB. After completion of initialization, this always points to a CEECIB. During exception processing, the current CEECIB contains information about the current exception that is being processed. Otherwise, it indicates that no exception is being processed.
CEECAAGETSX
Address of the user stack extender routine. This routine is called to extend the current DSA in the user stack. Its address is in the CEECAA for performance reasons.
CEECAADDSA
Address of the Language Environment dummy DSA. This address determines if a DSA is the dummy DSA, also known as the zeroth DSA.
CEECAASECTSIZ
Vector section size.
CEECAAPARTSUM
Vector partial sum number.
CEECAASSEXPNT
Log of the vector section size.
CEECAAEDB
Address of the Language Environment enclave data block. This field points to the encompassing EDB.
CEECAAPCB
Address of the Language Environment Process Control Block. This field points to the encompassing PCB.
CEECAAEYEPTR
Address of the CAA eye catcher. This field can be used for validation of the CAA.
CEECAAPTR
Address of the CAA. This field points to the CAA itself and can be used in validation of the CAA.
CEECAAGETS1
Non-DSA Stack overflow. This field is the address of a stack overflow routine which cannot guarantee that the current R13 is pointing at a DSA. R13 must point, at a minimum, point to a save area. For additional details, see Obtain a DSA in user stack with R13 pointing to save area.
CEECAASHAB
ABEND shunt routine. Its value is initially set to zero during thread initialization. If it is nonzero, this is the address of a routine used in specialized exception processing for ABENDs that are intercepted in the ESTAE exit. For more information, see z/OS Language Environment Programming Guide.
CEECAAPRGCK
Program interrupt code for CEECAADMC. If CEECAADMC is nonzero, and a program interrupt occurs, this field is set to the program interrupt code and control is passed to the address in CEECAAMDC. For more information, see z/OS Language Environment Programming Guide.
CEECAAFLAG1
CAA flag bits; the bits are defined as follows:
0
CEECAASORT: a call to DFSORT is active.
1
CEECAA_USE_OLD_STK: Use old stack
2
CEECAACICS_EXT_REG: ERTLI CICS extended register interface is in effect.
3
CEECAASHAB_RECOVER_IN_ESTAE_MODE: instructs Language Environment to set up for retry to the abend shunt routine, only if the PSW key that was in effect at the time the Language Environment ESTAE or user-provided error recovery routine was established matches the IPK result that is stored in CEECAASHAB_KEY.
4
Reserved.
5
CEECAA_FETCH_RELES_IN_PROGRESS: CEEFETCH or CEERELES is in progress on this thread.
6-7
Reserved.
CEECAASHAB_KEY
IPK result when CEECAASHAB is set.
CEECAAURC
Thread level return code. This is the common place for members to set the return codes for sub-to-sub return code processing.
CEECAAESS
This field is used to determine if a stack overflow routine must be called when allocating storage from the user stack. Normally, the value of this field will represent the end of the current user stack segment. However, its value can also be zero to force the call of a stack overflow routine for every allocation of storage from the user stack. This field is used by function prologs that use FASTLINK linkage conventions.
CEECAALESS
This field is used to determine if a stack overflow routine must be called when allocating storage from the library stack. Normally, the value of this field will represent the end of the current library stack segment. However, its value can also be zero to force the call of a stack overflow routine for every allocation of storage from the library stack. This field is used by function prologs that use FASTLINK linkage conventions.
CEECAAOGETS
Pointer to overflow user segment from FASTLINK.
CEECAAOGETLS
Pointer to overflow library segment from FASTLINK.
CEECAAPICICB
Address of preinit compatibility control block. This is provided in support of the PL/I preinitialization compatibility support.
CEECAAOGETSX
Pointer to user DSA exit from FASTLINK.
CEECAAGOSMR
Go Some More—Used CEEHTRAV multiple.
CEECAALEOV
Address of the Language Environmentz/OS UNIX System Services (z/OS UNIX) LIBVEC.
CEECAA_SIGSCTR
Signal Safe counter. When 0, an interrupt is allowed; when greater than 0, interrupts are temporarily inactive. Four types of interrupts can be blocked or allowed: signal interrupts, cancel interrupts, quiesce-terminate interrupts, and quiesce-freeze interrupts.
CEECAA_SIGSFLG
Signal Safe flags.
0
CEECAA_SIGPUTBACK — A signal was put back.
1
CEECAA_SA_RESTART — indicates that a signal registered with the SA_RESTART flag interrupted the last kernel call and the signal catcher returned (that is, loopback is required to re-issue the kernel call).
2
Reserved.
3
CEECAA_SIGSAFE: Indicates that synchronous signals are safe to be delivered, regardless of where the interrupt occurred.
4
CEECAA_CANCELSAFE: Indicates that it is safe to unconditionally accept delivery of a synchronous cancel.
5
CEECAA_SIGRESYNC: Indicates that one or more synchronous signals may have been recently put back the last time a signal was resolicited while returning from library to user code.
6
CEECAA_FRZ_UNSAFE: Indicates that the thread is unsafe to be frozen.
7
CEECAA_NOAPPREGS: Indicates that user application registers may be saved in a nonstandard place.
8
CEECAA_EINTR_RSOL: Secondary Signal re-solicitation is in progress, after EINTR errno from inner function.
9
CEECAA_EINTR_PUTB: Secondary re-solicited signal has been put back.
10
CEECAA_EINTR_REST: User signal catcher returned after catching secondary re-solicited signal with SA_RESTART in effect.
11
CEECAA_EINTR_SIGG: Stray signal interrupted CEEOSIGG while secondary signal resolicitation was in progress.
CEECAATHDID
This CAA's POSIX thread identifier (8 bytes).
CEECAA_DCRENT
Read/write static external anchor.
CEECAA_DANCHOR
Per-thread anchor.
CEECAA_CTOC
TOC anchor for CRENT.
CEECAARCB
Address of RCB.
CEECAACICSRSN
CICS reason code for member language.
CEECAAMEMBR
Address of thread-level member list. An entry is reserved for each member known to Language Environment. There is one member list per thread. For details, see Language Environment member list and event handler.
CEECAA_SIGNAL_STATUS
Signal status for terminating thread.
CEECAA_HCOM_REG7
The original register 7 value overlaid by a pointer to CEEOSIGX when the latest signal was put back.
CEECAA_HCOM_REG14
The original register 14 value overlaid by a pointer to CEEOSIGR when the latest signal was put back.
CEECAA_STACKFLOOR
Lowest usable address in the XPLINK stack.
CEECAAHPGETS
XPLINK stack extension routine.
CEECAAEDCHPXV
C++ XPLINK libvec.
CEECAAFOR1
Reserved for Fortran.
CEECAAFOR2
Reserved for Fortran.
CEECAATHREADHEAPID
Pointer to thread heap ID.
CEECAA_SYS_RTNCODE
System (kernel) return code.
CEECAA_SYS_RSNCODE
System (kernel) reason code.
CEECAAGETFN
Address of the WSA swap routine.
CEECAASIGNGPTR
Pointer to the "signam" external variable.
CEECAASIGNG
Value of the sign of lgamma() function.
-1
Negative sign
0
Zero
+1
Positive sign
CEECAA_FORDBG
Pointer to AFHDBHIM — FORTRAN hook interface.
CEECAAAB_STATUS
Contains the following validity flags:
CEECAAAB_GR0_VALID
Indicates if the CEECAAAB_GR0 field contains valid data about the last abend.
CEECAAAB_ICD1_VALID
Indicates if the CEECAAAB_ICD1 field contains valid data about the last abend.
CEECAAAB_ABCC_VALID
Indicates if the CEECAAAB_ABCC field contains valid data about the last abend.
CEECAAAB_CRC_VALID
Indicates if the CEECAAAB_CRC field contains valid data about the last abend.
CEECAAAB_GR15_VALID
Indicates if the CEECAAAB_GR15 field contains valid data about the last abend.
CEECAA_STACKDIRECTION
Stack direction.
CEECAAAB_GR0
Register 0 contents at the time of the ABEND. This is only valid if the CEECAAAB_GR0_VALID bit is on.
CEECAAAB_ICD1
The eight bit interrupt code from SDWAICD1 field of the SDWA for the abend. This is only valid if the CEECAAAB_ICD1_VALID bit is on.
CEECAAB_ABCC
The abend completion code, taken from SDWAABCC field of the SDWA for the shunted abend. This is only valid if the CEECAAAB_ABCC_VALID bit is on.
CEECAAAB_CRC
Component reason code, or return code associated with the abend, taken from the SDWACRC field of the SDWA for the shunted abend. This is only valid if the CEECAAAB_CRC_VALID bit is on.
CEECAAAGTS
A 4-byte pointer that contains the address of the entry point of the CEEVAGTS routine. CEEVAGTS supports the code that the C compiler generates in module prologs for DSA allocation.
CEECAA_LER5N1
Reserved.
CEECAAAHERP
Address of the CEEHERP routine.
CEECAAAUSTKBOS
Start of user stack segment.
CEECAAAUSTKEOS
End of user stack segment.
CEECAAUSERRTN@
Address of thread start routine.
CEECAAUDHOOK
Hook swapping XPLINK.
CEECAACEL_HPXV_B
Address of XPLINK vector for Base library.
CEECAACEL_HPXV_M
Address of XPLINK vector for Math library.
CEECAACEL_HPXV_L
Address of XPLINK vector for Locale library.
CEECAACEL_HPXV_O
Address of XPLINK vector for Open library.
CEECAACEL4VEC3
Address of 3rd C-RTL library vector.
CEECAA_CEEDLLF
Address of the newest CEEDLLF control block.
CEECAA_SAVSTACK
Saved Stack Pointer when the OS_NOSTACK linkage routine is called. After the call returns, the CEECAA_SAVSTACK field must be set back to zero. When the value in CEECAA_SAVSTACK is not zero, condition management and signal processing use this value as the current stack pointer. The format of the stack is determined by the value in the CEECAA_STACKDIRECTION field. Asynchronous signals are put back if the interrupt occurs outside the bounds of the routine that owns the stack frame.
CEECAA_SAVSTACK_ASYNC
When the value is not zero, CEECAA_SAVSTACK_ASYNC contains the address of a 4-byte field provided by the application that holds the Saved Stack Pointer when the register for the stack pointer is being used for other purposes. When the value is zero, CEECAA_SAVSTACK_ASYNC does not contain that address. When the field exists and is not zero, condition management and signal processing use this value as the current stack pointer. The format of the stack is determined by the value in the CEECAA_STACKDIRECTION field. Asynchronous signals are processed even if the interrupt occurs outside the bounds of the routine that owns the stack frame.