$IOT mapping

Table 1. Structure IOT
Offset
Dec
Offset
Hex
Type Len Name(Dim) Description
0 (0) STRUCTURE 0 IOT HASP INPUT/OUTPUT TABLE DSECT
         The following fields are defined over
         the buffer prefix in order to ensure that they
         are never written to SPOOL.
         BUFMEMD1, BUFMEMW1, BUFMEMW2, BUFMEMW3, and BUFMEMW5
         are used by HAM when writing out IOTs for SYSOUT data
         sets. They cannot be used in the IOT if it could be
         written by HASCHAM.
0 (0) X'50' 0  IOTFLAG4 "BUFMFLG1-BFPDSECT+IOT,1" Fourth flag byte (memory resident only)
0 (0) X'80' 0  IOT4CKPT "BUFM1CKP" Rewrite this IOT
0 (0) X'51' 0  IOTFLAG5 "BUFMEMF2-BFPDSECT+IOT,1" Fifth flag byte (memory resident only)
0 (0) X'80' 0  IOT5CSDB "BFD2CSDB" B'10000000' Write IOT in HAM (under the SDB)
0 (0) X'40' 0  IOT5CSFR "BFD2CSFR" B'01000000' HAM CEA should free IOT
0 (0) X'10' 0  IOT5IOE "BFD2IOE" B'00010000' I/O error (HAM PUT only)
0 (0) X'58' 0  IOTJCT "BUFMEMW6-BFPDSECT+IOT,4" Storage address of JCT (referenced only in allocation IOTs)
0 (0) X'5C' 0  IOTIOT "BUFMEMW7-BFPDSECT+IOT,4" Storage address of next IOT
0 (0) X'5C' 0  IOTCSASP "BUFMEMW7-BFPDSECT+IOT,4" CSA spin IOT chain pointer
0 (0) X'64' 0  IOTBWP "BUFWRTBK-BFPDSECT+IOT,4" Storage address of prev IOT
0 (0) X'64' 0  IOTJOE "BUFWRTBK-BFPDSECT+IOT,4" Offset of JOE for SPIN IOT while in HASPSPIN
         There will be only one secondary allocation IOT
         on this memory chain.
0 (0) X'4C' 0  IOTIOTA "BUFMEMW4-BFPDSECT+IOT,4" Storage address of secondary IOT
         The following fields are used ONLY in the CSA SPIN
         IOT. They can be used because the only buffer
         prefix field used in the CSA queued SPIN IOT is the
         CSA chaining field.
24 (18) CHARACTER 8  IOTNTEYE Eye catcher
32 (20) CHARACTER 32  IOTNOTPL Parm list storage for $HNOTIFY call from DSAL
         End of buffer prefix fields
0 (0) BITSTRING 1   (0) BUFFER CONTROL INFORMATION
0 (0) X'68' 0  IOTSTART "*" START OF DATA WRITTEN TO SPOOL
      The following sub-section, generated by the SPID
      macro, must reside immediately after the I/O control
      data in every spool buffer.
      The following fields are defined:
      Eyecatcher - 4 bytes
      Job name - 8 bytes
      Job number - 4 bytes
      Job key - 4 bytes
      Dataset key - 4 bytes (or reserved if not applicable)
104 (68) CHARACTER 4  IOTID Eyecatcher
108 (6C) CHARACTER 8  IOTJNAME Job name
116 (74) SIGNED 4  IOTJBNUM Job number
120 (78) SIGNED 4  IOTJBKEY Job key
124 (7C) BITSTRING 4 Reserved
124 (7C) X'18' 0  IOTSPLNG "*-IOTID"
128 (80) ADDRESS 2  IOTLENG LENGTH OF IOT INCLUDING PREFIX
130 (82) BITSTRING 1  IOTFLAG1 FIRST FLAG BYTE
131 (83) BITSTRING 1  IOTFLAG2 SECOND FLAG BYTE
132 (84) BITSTRING 4  IOTTRACK TRACK ADDRESS OF THIS IOT
136 (88) BITSTRING 4  IOTIOTTR TRACK ADDRESS OF NEXT IOT
         IOTMTHER is the allocation IOT associated with the
         PDDBs in this IOT. It is the job allocation IOT in
         non-spin PDDB-only IOTs, and the spin 'mother' IOT
         in spin-daughter PDDB IOTs. It is zero in the job
         (primary) allocation IOT and spin mother (primary)
         allocation IOTs and in secondary allocation IOTs.
         IOTMTHER is not normally set until JOEs are built
         that point, via JOTIOTTR, to the IOT.
140 (8C) SIGNED 4  IOTMTHER MTTR of mother alloc IOT
144 (90) SIGNED 4  IOTMULTR MTTR of Multiple Output Charact- eristic (MOC) spool chain
148 (94) SIGNED 4 Reserved
140 (8C) BITSTRING 6  IOTPRMQT MQTR of primary alloc IOT
146 (92) BITSTRING 2 Reserved
148 (94) BITSTRING 4  IOTTGATR TRACK ADDRESS OF NEXT SECONDARY ALLOCATION IOT
152 (98) SIGNED 2  IOTTGOFL Offset of 1st MQT Version 1 IOTs only. Must be zero in version 0 IOTs
154 (9A) SIGNED 2  IOTTGOFF Offset of free TGAE space
156 (9C) SIGNED 4  IOTJQOFF JQE OFFSET
160 (A0) BITSTRING 1  IOTFLAG3 Third flag byte
         IOTFLAG3
      1... ....  IOT3NUTK "B'10000000'" New track obtained after a close failure
      .1.. ....  IOT3MOCF "B'01000000'" Mother instance counting has failed
         TGAEs in IOTs come in 3 flavors.
         Version 0 - Old style IOT with all TGAEs being 3
                     bytes in length
         Version 1 - An IOT that started off as a version 0
                     IOT with 3 byte TGAEs but an M of X'FF'
                     was added to convert remaining TGAEs to
                     5 byte TGAEs
         Version 2 - An IOT with all 5 byte TGAEs
161 (A1) BITSTRING 1  IOTVER IOT Version number
161 (A1) X'0' 0  IOTVER0 "0" Vrsn 0 IOT (short TGAEs)
161 (A1) X'1' 0  IOTVER1 "1" Vrsn 1 IOT (Mixed TGAEs)
161 (A1) X'2' 0  IOTVER2 "2" Vrsn 2 IOT (long TGAEs)
162 (A2) BITSTRING 2 Reserved for future use
164 (A4) SIGNED 4   (2) Reserved for future use
172 (AC) SIGNED 4  IOTPDDBP OFFSET BEYOND LAST PDDB IN IOT
176 (B0) SIGNED 4  IOTPDDB OFFSET TO FIRST PDDB IN IOT
180 (B4) SIGNED 4  IOTDSCT Offset of DSCT in IOT
184 (B8) BITSTRING 4  IOTCKRC MTTR OF CHK SPL REC - SPIN IOTS
188 (BC) SIGNED 4  IOTMUCTR Multiple Output Characteristics (MOC) Counter
192 (C0) SIGNED 4  IOTCKTKN Checkpoint token for spin data sets
196 (C4) CHARACTER 8  IOTUSER Userid which allocated datasets in this IOT (Only set by spool reload)
208 (D0) DBL WORD 8 Reserved for future use
         ALLOCATION IOT (BOTH PRIMARY AND SECONDARY)
216 (D8) DBL WORD 8  IOTMSTAB(0) MASTER TAB (DWORD ALIGNED FOR CDS ON TABMTTR)
228 (E4) SIGNED 4 Reserved
232 (E8) DBL WORD 8   (0) ALIGN FOLLOWING DOUBLEWORD
232 (E8) SIGNED 4  IOTCYMXM MAX TTR THIS TRACK GROUP
236 (EC) SIGNED 4  IOTCELL MTTR OF NEXT AVAILABLE TRAKCELL
236 (EC) X'E8' 0  IOTRCPBA "IOTCYMXM,*-IOTCYMXM" BACK-UP AREA FOR RCPXTTR FOR MAS SPOOL MESSAGES IN RTAM
240 (F0) BITSTRING 32  IOTSPMSK MASK OF SPOOLS ALLOCATED ON
272 (110) BITSTRING 32  IOTSAMSK SPOOLS ALLOWED MASK
304 (130) SIGNED 3  IOTFAMLY Family ID for MOCA IOTs
307 (133) BITSTRING 1 Reserved for future use
308 (134) ADDRESS 4 Reserved for future use
312 (138) DBL WORD 8 Reserved for future use
312 (138) X'3' 0  IOTTGAEL "3" Length of short TGAE (MTT)
312 (138) X'5' 0  IOTTGA2L "5" Long TGAE length (MQT)
312 (138) X'140' 0  IOTTGAE "*" START OF TRACK GROUP ALLOCATION ENTRIES (TGAE'S)
         NON-ALLOCATION IOT (PDDB IOT)
216 (D8) DBL WORD 8   (2) RESERVED FOR FUTURE USE
232 (E8) SIGNED 4  IOTPDDB1(0) FIX IOT OFFSET TO LOCATION OF FIRST PDDB WITHIN A PDDB IOT
         IOTFLAG1
      .1.. ....  IOT1UNSP "B'01000000'" IOT IS UNSPUN
      ..1. ....  IOT1ALO2 "B'00100000'" IOT IS SECONDARY ALLOCATION IOT
      ...1 ....  IOT1SPIN "B'00010000'" IOT TYPE IS SPIN
      .... 1...  IOT1ALOC "B'00001000'" IOT is a primary allocation IOT (mutually exclusive with IOT1ALO2)
      .... .1..  IOT1NTPR "B'00000100'" TO BE PROC. BY SPIN/HOLD
      .... ..1.  IOT1NEWS "B'00000010'" JESNEWS IOT
      .... ...1  IOT1NEW "B'00000001'" 2NDARY ALLOC IOT HAS BEEN BUILT
         IOTFLAG2
      1... ....  IOT2UNAL "B'10000000'" IOT HAS BEEN UNALLOCATED
      .1.. ....  IOT2RUBL "B'01000000'" IOT IS REUSABLE
      ..1. ....  IOT2RUED "B'00100000'" IOT HAS BEEN REUSED
      ...1 ....  IOT2NLPL "B'00010000'" IOT CONTAINS ONLY NULL PLACEHOLDER PDDBS
      .... 1...  IOT2NSPN "B'00001000'" SPIN IOT WAS UNALLOCATED AS NO-SPIN
      .... .1..  IOT2DSCT "B'00000100'" DSCT contains valid info
      .... ..1.  IOT2SPNB "B'00000010'" IOT is busy in HASPSPIN
      .... ...1  IOT2SPER "B'00000001'" I/O error incurred writing IOT
Table 2. Cross Reference for $IOT
Name Offset Hex Tag
IOT 0
IOTBWP 0 64
IOTCELL EC
IOTCKRC B8
IOTCKTKN C0
IOTCSASP 0 5C
IOTCYMXM E8
IOTDSCT B4
IOTFAMLY 130
IOTFLAG1 82
IOTFLAG2 83
IOTFLAG3 A0
IOTFLAG4 0 50
IOTFLAG5 0 51
IOTID 68
IOTIOT 0 5C
IOTIOTA 0 4C
IOTIOTTR 88
IOTJBKEY 78
IOTJBNUM 74
IOTJCT 0 58
IOTJNAME 6C
IOTJOE 0 64
IOTJQOFF 9C
IOTLENG 80
IOTMSTAB D8
IOTMTHER 8C
IOTMUCTR BC
IOTMULTR 90
IOTNOTPL 20
IOTNTEYE 18
IOTPDDB B0
IOTPDDBP AC
IOTPDDB1 E8
IOTPRMQT 8C
IOTRCPBA EC E8
IOTSAMSK 110
IOTSPLNG 7C 18
IOTSPMSK F0
IOTSTART 0 68
IOTTGAE 138 140
IOTTGAEL 138 3
IOTTGATR 94
IOTTGA2L 138 5
IOTTGOFF 9A
IOTTGOFL 98
IOTTRACK 84
IOTUSER C4
IOTVER A1
IOTVER0 A1 0
IOTVER1 A1 1
IOTVER2 A1 2
IOT1ALOC 140 8
IOT1ALO2 140 20
IOT1NEW 140 1
IOT1NEWS 140 2
IOT1NTPR 140 4
IOT1SPIN 140 10
IOT1UNSP 140 40
IOT2DSCT 140 4
IOT2NLPL 140 10
IOT2NSPN 140 8
IOT2RUBL 140 40
IOT2RUED 140 20
IOT2SPER 140 1
IOT2SPNB 140 2
IOT2UNAL 140 80
IOT3MOCF A0 40
IOT3NUTK A0 80
IOT4CKPT 0 80
IOT5CSDB 0 80
IOT5CSFR 0 40
IOT5IOE 0 10