$CAT mapping

Table 1. Structure CAT
Offset
Dec
Offset
Hex
Type Len Name(Dim) Description
0 (0) STRUCTURE 0 CAT HASP CLASS ATTRIBUTE TABLE ELEMENT
         Start of memory-only segment ( not checkpointed )
         NOTE: - This section also exists in GRPOBJ
                 elements ( see $CLASGRP ).
0 (0) SIGNED 2  CATMEM(0) Start of memory-only sect
         CAT cache binary AVL tree 'node' data :
         - For performance, each checkpointed (BERT
           resident) CAT is cached in memory as part of
           a balanced binary AVL tree.
         - The tree is rebuilt whenever a CAT is added or
           removed.
0 (0) ADDRESS 4  CATLEFT Pointer to lower CAT in binary tree.
4 (4) ADDRESS 4  CATRIGHT Pointer to higher CAT in binary tree.
8 (8) SIGNED 2  CATAVBAL AVL tree balance factor - used while building the binary tree.
         Memory only flags :
10 (A) BITSTRING 1  CATFLAG5 Memory-only flags
      1... ....  CAT5ANOM "B'10000000'" ON = This job class has anomalies. Set in HASPJQS::CATHMAX.
      .1.. ....  CAT5NOWK "B'01000000'" ON = No selectable work exists for this job class (within the current checkpoint cycle). Set by $QGET processing and cleared by HASPJQS::CATHMAX (at ckpt cycle) and when a job is added to the class.
      ..1. ....  CAT5CKPT "B'00100000'" ON = BERT resident CAT fields have changed. Alerts checkpoint cycle processing to write this CAT. SET by $DOGCAT when a CAT is updated. RESET by the checkpoint cycle when written (see $CATCWRT routine).
         Other bookkeeping data :
11 (B) BITSTRING 1  CATPSQTP The associated JQETYPE of this CAT.
12 (C) SIGNED 4  CATELNUM One-based element number of this cache element.
         CAT/GRPOBJ cache element name. This will be equal
         to CATCLASS if a CAT element or GRPNAME if a GRPOBJ
         element.
16 (10) CHARACTER 8  CATELNAM CAT cache element name.
         FETCHNEXT Class group (GRPOBJ) bookkeeping info:
         - CATGRP@ : FETCHNEXT group address/indicator :
           o If NOT ZERO - Processing a group and this addr
                           points to the corresponding
                           GRPOBJ. A FETCHNEXT= will locate
                           the next CAT in the group.
           o If ZERO - The CAT is NOT part of group
                           processing. A FETCHNEXT= will
                           locate the next 'sequential' CAT.
         - CATGRPC1 : The first CAT visited in the group.
                      Since the GRPOBJ is a circular chain,
                      this is used as the end condition to
                      determine when group processing is
                      complete.
24 (18) ADDRESS 4  CATGRP@ FETCHNEXT GRPOBJ address/ indicator.
28 (1C) CHARACTER 8  CATGRPC1 First CAT processed in GRPOBJ circular chain.
28 (1C) X'24' 0  CATMEMLN "*-CATMEM" Size of memory only section
         Start of CATBASE BERT segment.
28 (1C) X'7' 0  CATVERSN "7" CAT version
36 (24) BITSTRING 1  CATJOBFL HASP JOB FLAGS, COPIED INTO THE JCTJOBFL FIELD, FLAG VALUES ARE DEFINED IN $JCT
37 (25) BITSTRING 1  CATJBOPT HASP JOB OPTIONS, COPIED INTO THE JCTJBOPT FIELD, FLAG VALUES ARE DEFINED IN $JCT
38 (26) CHARACTER 2  CATPROCN PROCEDURE LIBRARY NUMBER
40 (28) BITSTRING 1  CATSMFLG HASP SMF FLAGS, COPIED INTO THE JCTSMFLG FIELD, FLAG VALUES ARE DEFINED IN $JCT
41 (29) CHARACTER 3  CATPERFM DEFAULT PERFORMANCE GROUP
         The following fields are defined in aggregate by
         the CATCONVP symbol (below) and represent the
         converter defaults mapped by the converter
         parameter list (IEFCNPRM). The fields covered
         by CATCONVP must match those mapped by IEFCNPRM.
44 (2C) SIGNED 4  CATCPBGN(0) START OF CONVERTER PARMS
44 (2C) CHARACTER 1  CATCACCT ACCOUNTING INFO REQUIRED
      .... ....  CATCNONE "B'00000000'" NO INFO IS REQUIRED
      .... ...1  CATCNAME "B'00000001'" PROGRAMMER NAME REQ'D
      .... ..1.  CATCNUMB "B'00000010'" ACCOUNT NUMBER REQUIRED
44 (2C) X'3' 0  CATCALL "CATCNAME+CATCNUMB" JOB AND NUMBER REQUIRED
      .... .1..  CATCSWAL "B'00000100'" SWA ABOVE 16M LINE
45 (2D) CHARACTER 2 RESERVED
47 (2F) CHARACTER 8  CATCTIME(0) DFLT JOB STEP INTL TIME
47 (2F) CHARACTER 6  CATCMNTE MAXIMUM MINUTES
53 (35) CHARACTER 2  CATCSECS MAXIMUM SECONDS
55 (37) CHARACTER 5  CATCREGN(0) DEFAULT JOB STEP REGION
55 (37) CHARACTER 4  CATCRGN NUMERIC SPECIFICATION
59 (3B) CHARACTER 1  CATCRGA KILOBYTES OR MEGABYTES SPECIFICATION
60 (3C) CHARACTER 1  CATCMND COMMAND DISPOSITION
60 (3C) X'F0' 0  CATCEXEC "C'0'" PASS THE COMMAND THROUGH
60 (3C) X'F1' 0  CATCDSPL "C'1'" DISPLAY AND THEN PASS CMND
60 (3C) X'F2' 0  CATCVER "C'2'" ASK OPERATOR DISPOSITION
60 (3C) X'F3' 0  CATCIGN "C'3'" IGNORE THE COMMAND
61 (3D) CHARACTER 1  CATCBLP BYPASS LABEL PROCESSING OPT.
      .... ...1  CATCBLPY "B'00000001'" PROCESS BYPASS LABEL PARM
62 (3E) CHARACTER 1  CATCOCG(4) OPERATOR COMMAND GROUP
      .... .1..  CATCGSYS "B'00000100'" GROUP 1 COMMANDS (SYS)
      .... ..1.  CATCGIO "B'00000010'" GROUP 2 COMMANDS (I/O)
      .... ...1  CATCGCON "B'00000001'" GROUP 3 COMMANDS (CONS)
62 (3E) X'7' 0  CATCGALL "CATCGSYS+CATCGIO+CATCGCON" ALL GROUPS
66 (42) CHARACTER 1  CATCLJCL DEFAULT MSGLEVEL, JCL LISTED IF NO MSGLEVEL
67 (43) CHARACTER 1  CATCTMSG ALLOCATION TERMINATION MSGS
67 (43) X'2C' 0  CATCONVP "CATCPBGN,*-CATCPBGN" FULL CONVERTER PARAMETERS
68 (44) BITSTRING 1  CATCFLG1 Converter parm byte
      1... ....  CATCNQAU "B'10000000'" - Automatically downgrade SYSDSN ENQs to SHR control when no longer needed EXCLUSIVE
      .1.. ....  CATCNQDS "B'01000000'" - Do not allow the DSENQSHR JCL keyword on a job statement. This disables the SYSDSN ENQ downgrade function. - Both bits off allows the function (ALLOW)
      ..1. ....  CATSYSYM "B'00100000'" - System symbols substitution in batch jobs is supported
      ...1 ....  CATGDGST "B'00010000'" - GDGBIAS=STEP default has been set
69 (45) BITSTRING 7 Reserved for potential expansion of IEFCNPRM
         End of converter parameters mapped by IEFCNPRM
76 (4C) BITSTRING 1  CATOPSWT CONVERTER OPTION SWITCHES
77 (4D) BITSTRING 1  CATFLAG1 NORMAL OUTDISP FOR JESDS
      1... ....  CAT1CDP "B'10000000'" CONDITIONALLY PURGE OUTPUT FOR JOBS IN THIS CLASS
77 (4D) X'10' 0  CAT1NODP "$ODPURGE" NORMAL OUTDISP=PURGE
77 (4D) X'8' 0  CAT1NODW "$ODWRITE" NORMAL OUTDISP=WRITE
77 (4D) X'4' 0  CAT1NODH "$ODHOLD" NORMAL OUTDISP=HOLD
77 (4D) X'2' 0  CAT1NODK "$ODKEEP" NORMAL OUTDISP=KEEP
77 (4D) X'1' 0  CAT1NODL "$ODLEAVE" NORMAL OUTDISP=LEAVE
78 (4E) BITSTRING 1  CATFLAG2 ABNORMAL OUTDISP FOR JESDS
78 (4E) X'10' 0  CAT2AODP "$ODPURGE" ABNORMAL OUTDISP=PURGE
78 (4E) X'8' 0  CAT2AODW "$ODWRITE" ABNORMAL OUTDISP=WRITE
78 (4E) X'4' 0  CAT2AODH "$ODHOLD" ABNORMAL OUTDISP=HOLD
78 (4E) X'2' 0  CAT2AODK "$ODKEEP" ABNORMAL OUTDISP=KEEP
78 (4E) X'1' 0  CAT2AODL "$ODLEAVE" ABNORMAL OUTDISP=LEAVE
79 (4F) BITSTRING 1  CATFLAG3 Processing flags
      1... ....  CAT3WLM "B'10000000'" WLM managed class
      .1.. ....  CAT3SPEC "B'01000000'" Special class (STC/TSU)
      ..1. ....  CAT3PSEU "B'00100000'" Pseudo-class queue (not set in real CATs)
      ...1 ....  CAT3RBLD "B'00010000'" Pseudo-class queue for rebuild queue
      .... 1...  CAT3RECO "B'00001000'" Pseudo CAT used for JQE and CAT reconciliation
      .... .1..  CAT3SINV "B'00000100'" Default SCHENV (CATSCHED) no longer defined
      .... ..1.  CAT3DUOK "B'00000010'" Duplicate job names OK this job class
      .... ...1  CAT3LSRC "B'00000001'" JOBRC=LASTRC specified for this job class
80 (50) CHARACTER 8  CATXBM PROCNAME FOR XBM/2 JOB
88 (58) CHARACTER 8  CATCLASS Name of this job class.
96 (60) SIGNED 4  CATMAXJ Max executing jobs in this class in the JESPlex
  CATCURJ is altered by $QBUSY, QADCHAIN and QDECHAIN only
100 (64) SIGNED 4  CATCURJ Current executing jobs in this class in the JESPlex
104 (68) SIGNED 4  CATMAXT TOD when Max executing jobs reached
108 (6C) SIGNED 4  CATJQER Number of JQEs waiting for timer reconciliation (only present in CATs with CAT3RECO on)
112 (70) SIGNED 4  CATIMER TOD when queue held
116 (74) ADDRESS 4  CATQHDI First JQE in class; CKPT only (index)
120 (78) CHARACTER 16  CATSCHED Default SCHENV, JOB classes only
136 (88) CHARACTER 1  CATMCLAS Default message class, TSU and STC classes only
137 (89) BITSTRING 6  CATJLOG JES log control
144 (90) ADDRESS 4   (0) Word align
144 (90) SIGNED 4  CATXITD1 Reserved for Exit use
148 (94) SIGNED 4  CATXITD2 Reserved for Exit use
152 (98) SIGNED 4   (0) Align section length
152 (98) X'74' 0  CATLEN1 "*-CATJOBFL" Length of main CATBASE BERT segment.
         Start of CATQAFF BERT segment.
152 (98) BITSTRING 4  CATQAFF Members to which the class has affinity
156 (9C) BITSTRING 1  CATMBRMX Members on which CATJACT is less than CATJMACT
156 (9C) X'8' 0  CATLEN4 "*-CATQAFF" Length of affinity/max CATQAFF BERT segment.
         Start of CATACT BERT segment.
160 (A0) BITSTRING 1  CATFLAG4 Flags
      1... ....  CAT4JDUP "B'10000000'" At least one duplicate job in this class
      .1.. ....  CAT4INAC "B'01000000'" This CAT is inactive and no new work can be selected from it.
      ..1. ....  CAT4PERM "B'00100000'" Permanent CAT (cannot be deleted).
      ...1 ....  CAT4DFLT "B'00010000'" This is default job class (cannot delete/inact)
161 (A1) BITSTRING 1  CATPRMRT STARTBY promotion rate
162 (A2) BITSTRING 2 Reserved for future use
164 (A4) SIGNED 4  CATJACT(0) Batch jobs active
164 (A4) X'84' 0  CATLEN2 "*-CATFLAG4" Length of job active CATACT BERT segment.
         Start of CATGROUP BERT segment.
292 (124) CHARACTER 8  CATGPNAM If not all zeroes, this CAT belongs to a class group and this is the name of the group.
300 (12C) CHARACTER 8  CATGPNXT If not all zeroes, this CAT belongs to a class group and this is the name of the NEXT CAT in this class group
300 (12C) X'10' 0  CATLEN5 "*-CATGPNAM" Length of class group CATGROUP BERT segment.
         Start of CATMACT BERT segment.
308 (134) SIGNED 4  CATJMACT(0) Batch job activity maximum
308 (134) X'80' 0  CATLEN3 "*-CATJMACT" Length of max active CATMACT BERT segment.
         Start of CATDESC BERT segment.
440 (1B8) DBL WORD 8   (0) Alignment
440 (1B8) CHARACTER 80  CATDESC Description of class
520 (208) DBL WORD 8   (0) Ensure double word bdy
520 (208) X'208' 0  CATLEN "*-CAT" Length of CAT
520 (208) X'208' 0  CATLLEN "*-CAT" Full length of CAT
         SPECIAL CLASS DEFINITIONS
      11.1 ....  CATSTCCL "X'D0'" SYSTEM TASK CLASS
      111. ....  CATTSUCL "X'E0'" FOREGROUND TIME SHARING CLASS
520 (208) X'5B' 0  CATSTCID "C'$'" SYSTEM TASK DISPLAY ID
520 (208) X'7C' 0  CATTSUID "C'@'" FORGROUND TIME SHARING DISPLAY ID
      .1.. ....  CATNENT "X'FF'-X'C0'+1" NUMBER OF ENTRIES IN CAT
Table 2. Structure CATCHDR
Offset
Dec
Offset
Hex
Type Len Name(Dim) Description
0 (0) STRUCTURE 0 CATCHDR CACHE HEADER
0 (0) SIGNED 4  CATCHNUM Number of elements in cache
4 (4) SIGNED 4  CATCHESZ Byte size of a cache element. Includes PREBERT, CAT/GRPOBJ, and additional user BERT data
8 (8) SIGNED 4  CATCHSIZ Total size of the cache - in BYTES.
12 (C) SIGNED 2  CATCHCNT JNTCATCT value captured when the cache is built. Used to determine if the cache is current.
14 (E) BITSTRING 1  CATFLAG6 CAT Cache header flags
      1... ....  CAT6TREE "B'10000000'" Binary tree has been successfully built
15 (F) BITSTRING 1 Reserved
16 (10) ADDRESS 4  CATCROOT Root node in cache AVL tree. Points to CAT cache entry.
20 (14) BITSTRING 64  CATIPATH Array of 2 byte elements used to track path taken when inserting a cache element within AVL tree. 0 -> left subtree path 1 -> right subtree path Supports 2 to the 32th distinct values and tree depths up to 32. Only used when tree is built.
20 (14) X'40' 0  CATIPATL "*-CATIPATH" Length
20 (14) CHARACTER 8  CATPRVCN Prev CAT/GRP name before CAT cache entry refresh
28 (1C) ADDRESS 4  CATPRVLE Previous pointer to lower CAT in tree before CAT cache entry refresh
32 (20) ADDRESS 4  CATPRVRI Previous pointer to higher CAT in tree before CAT cache entry refresh
36 (24) SIGNED 2  CATPRVBL Previous cache entry balance factor before CAT cache entry refresh
84 (54) CHARACTER 8  CATCHSRC Search value ( job class name ) used to locate a cache element.
84 (54) X'5C' 0  CATCHLEN "*-CATCHDR" Size of cache header.
92 (5C) SIGNED 2  CATCHELM(0) Cache elements start here.
92 (5C) X'32' 0  CATCINEL "50" Storage will be created for CATCINEL # of elements the first time the cache is created.
Table 3. Cross Reference for $CAT
Name Offset Hex Tag
CAT 0
CATAVBAL 8
CATCACCT 2C
CATCALL 2C 3
CATCBLP 3D
CATCBLPY 3D 1
CATCDSPL 3C F1
CATCEXEC 3C F0
CATCFLG1 44
CATCGALL 3E 7
CATCGCON 3E 1
CATCGIO 3E 2
CATCGSYS 3E 4
CATCHCNT C
CATCHDR 0
CATCHELM 5C
CATCHESZ 4
CATCHLEN 54 5C
CATCHNUM 0
CATCHSIZ 8
CATCHSRC 54
CATCIGN 3C F3
CATCINEL 5C 32
CATCLASS 58
CATCLJCL 42
CATCMND 3C
CATCMNTE 2F
CATCNAME 2C 1
CATCNONE 2C 0
CATCNQAU 44 80
CATCNQDS 44 40
CATCNUMB 2C 2
CATCOCG 3E
CATCONVP 43 2C
CATCPBGN 2C
CATCREGN 37
CATCRGA 3B
CATCRGN 37
CATCROOT 10
CATCSECS 35
CATCSWAL 2C 4
CATCTIME 2F
CATCTMSG 43
CATCURJ 64
CATCVER 3C F2
CATDESC 1B8
CATELNAM 10
CATELNUM C
CATFLAG1 4D
CATFLAG2 4E
CATFLAG3 4F
CATFLAG4 A0
CATFLAG5 A
CATFLAG6 E
CATGDGST 44 10
CATGPNAM 124
CATGPNXT 12C
CATGRP@ 18
CATGRPC1 1C
CATIMER 70
CATIPATH 14
CATIPATL 14 40
CATJACT A4
CATJBOPT 25
CATJLOG 89
CATJMACT 134
CATJOBFL 24
CATJQER 6C
CATLEFT 0
CATLEN 208 208
CATLEN1 98 74
CATLEN2 A4 84
CATLEN3 134 80
CATLEN4 9C 8
CATLEN5 12C 10
CATLLEN 208 208
CATMAXJ 60
CATMAXT 68
CATMBRMX 9C
CATMCLAS 88
CATMEM 0
CATMEMLN 1C 24
CATNENT 208 40
CATOPSWT 4C
CATPERFM 29
CATPRMRT A1
CATPROCN 26
CATPRVBL 24
CATPRVCN 14
CATPRVLE 1C
CATPRVRI 20
CATPSQTP B
CATQAFF 98
CATQHDI 74
CATRIGHT 4
CATSCHED 78
CATSMFLG 28
CATSTCCL 208 D0
CATSTCID 208 5B
CATSYSYM 44 20
CATTSUCL 208 E0
CATTSUID 208 7C
CATVERSN 1C 7
CATXBM 50
CATXITD1 90
CATXITD2 94
CAT1CDP 4D 80
CAT1NODH 4D 4
CAT1NODK 4D 2
CAT1NODL 4D 1
CAT1NODP 4D 10
CAT1NODW 4D 8
CAT2AODH 4E 4
CAT2AODK 4E 2
CAT2AODL 4E 1
CAT2AODP 4E 10
CAT2AODW 4E 8
CAT3DUOK 4F 2
CAT3LSRC 4F 1
CAT3PSEU 4F 20
CAT3RBLD 4F 10
CAT3RECO 4F 8
CAT3SINV 4F 4
CAT3SPEC 4F 40
CAT3WLM 4F 80
CAT4DFLT A0 10
CAT4INAC A0 40
CAT4JDUP A0 80
CAT4PERM A0 20
CAT5ANOM A 80
CAT5CKPT A 20
CAT5NOWK A 40
CAT6TREE E 80