Language Environment common anchor area
Each thread is represented by a common anchor area (CAA), as the code example below shows. The CAA is generated during thread initialization and deleted during thread termination. It is pointed to by CEELCA_CAA. For mapping information on the CAA, see the SCEEMAC(CEECAA) data set.
1 CEECAA
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============= ==============================
0 (0) STRUCTURE 0 CEECAA , CAA mapping
0 (0) BITSTRING 1280 CEECAA_EXTERNAL(0)
Fields external in 31-bit mode
0 (0) BITSTRING 688 * Reserved for "external" fields
688 (2B0) BITSTRING 2 * Padding
690 (2B2) BITSTRING 2 CEECAA_INVAR(0)
Field that is at same fixed
offset in both 31-bit and
64-bit CAAs
690 (2B2) BITSTRING 1 CEECAA_INVAR_0
Byte 0
1... .... CEECAA_64 "X'80'" ON/OFF = 64/31-bit CAA
EQU X'40 Reserved
EQU X'20 Reserved
EQU X'10 Reserved
EQU X'08 Reserved
EQU X'04 Reserved
EQU X'02 Reserved
EQU X'01 Reserved
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
691 (2B3) BITSTRING 1 CEECAA_INVAR_1
Byte 1
EQU X'80' Reserved
EQU X'40' Reserved
EQU X'20' Reserved
EQU X'10' Reserved
EQU X'08' Reserved
EQU X'04' Reserved
EQU X'02' Reserved
EQU X'01' Reserved
692 (2B4) BITSTRING 4 * Padding
696 (2B8) BITSTRING 72 * Reserved for "external fields"
768 (300) BITSTRING 16 * Reserved
784 (310) BITSTRING 80 CEECAAMEMBER_AREA(0)
CGEN, for C Member
784 (310) ADDRESS 8 CEECAACGENE Reserved
792 (318) BITSTRING 24 * Reserved
816 (330) ADDRESS 8 CEECAACTHD Address of CTHD
824 (338) ADDRESS 8 * Reserved
832 (340) ADDRESS 8 CEECAACPCB Address of C PCB
840 (348) ADDRESS 8 CEECAACEDB Address of C CEDB
848 (350) BITSTRING 16 *
864 (360) BITSTRING 3 * Reserved
867 (363) BITSTRING 1 CEECAAFLAG2 2nd flags byte
EQU X'80' Reserved
EQU X'40' Reserved
..1. .... CEECAATIP "X'20'" Thread termination in
progress
...1 .... CEECAA_THREAD_INITIAL
"X'10'" If on, indicates this
is the IPT
.... 1... CEECAA_TRACE_ACTIVE
"X'08'" If on, library trace is
active
(TRACE runtime option was set)
.... .1.. CEECAA_ALTSTK_ACTIVE
"X'04'" If on, alt stack active
EQU X'02' Reserved
.... ...1 CEECAA_USRSTK_ACTIVE
"X'01'" If on, context
switching user stack is active
868 (364) BITSTRING 1 CEECAALEVEL LE/370 level identifier
869 (365) BITSTRING 3 * Reserved
872 (368) ADDRESS 8 CEECAADMC Addr of ESPIE Devil-May-Care
rtn
880 (370) BITSTRING 8 * Reserved
888 (378) ADDRESS 8 CEECAAERR Addr of the current CIB
896 (380) DBL WORD 8 CEECAA_FIRSTDSA(0)
LE64 First DSA
896 (380) ADDRESS 8 CEECAADDSA Addr of the dummy DSA
904 (388) ADDRESS 8 CEECAAEDB Address of the EDB
912 (390) ADDRESS 8 CEECAAPCB Address of the PCB
The following two fields are used for the validation of the CAA
====================================================================================
920 (398) ADDRESS 8 CEECAAEYEPTR Addr of CAA eyecatcher
928 (3A0) ADDRESS 8 CEECAAPTR Addr of this CAA
936 (3A8) BITSTRING 40 * Reserved
976 (3D0) CHARACTER 8 CEECAATHDID Posix thread id
984 (3D8) ADDRESS 8 CEECAARCB A(RCB)
992 (3E0) BITSTRING 104 * End
Figure 1 shows the cross reference to the CAA.
Figure 1. Common
anchor area (CAA) field descriptions (cross references) AMODE 64
1 CROSS REFERENCE
HEX HEX
NAME OFFSET VALUE LEVEL
==== ====== ======== =====
CEECAA 0 1
CEECAA_ALTSTK_ACTIVE 363 4 2
CEECAA_EXTERNAL 0 2
CEECAA_FIRSTDSA 380 2
CEECAA_INVAR 2B2 2
CEECAA_INVAR_0 2B2 2
CEECAA_INVAR_1 2B3 2
CEECAA_THREAD_INITIAL 363 10 2
CEECAA_TRACE_ACTIVE 363 8 2
CEECAA_USRSTK_ACTIVE 363 1 2
CEECAA_64 2B2 80 2
CEECAACEDB 348 2
CEECAACGENE 310 2
CEECAACPCB 340 2
CEECAACTHD 330 2
CEECAADDSA 380 2
CEECAADMC 368 2
CEECAAEDB 388 2
CEECAAERR 378 2
CEECAAEYEPTR 398 2
CEECAAFLAG2 363 2
CEECAALEVEL 364 2
CEECAAMEMBER_AREA 310 2
CEECAAPCB 390 2
CEECAAPTR 3A0 2
CEECAARCB 3D8 2
CEECAATHDID 3D0 2
CEECAATIP 363 20 2