The SYSADATA file is a sequential binary file. Under z/OS batch, the compiler writes the SYSADATA records to the file specified by the SYSADATA DD statement, and that file must not be a member of a PDS. On all other systems, the compiler writes to a file with the extension "adt".
Each record in the file contains a header. This 8-byte header has fields that are the same for all records in the file:
The header also has some fields that vary from record to record:
Possible record types are encoded as an ordinal value as shown in Figure 105.
Define ordinal xin_Rect
(Xin_Rect_Msg value(50), /* Message record */
Xin_Rect_Fil value(57), /* File record */
Xin_Rect_Sum value(61), /* Summary record */
Xin_Rect_Src value(63), /* Source record */
Xin_Rect_Tok value(64), /* Token record */
Xin_Rect_Sym value(66), /* Symbol record */
Xin_Rect_Lit value(67), /* Literal record */
Xin_Rect_Syn value(69), /* Syntax record */
Xin_Rect_Ord_Type value(80), /* ordinal type record */
Xin_Rect_Ord_Elem value(81), /* ordinal element record */
Xin_Rect_Ctr value(82) ) /* counter record */
prec(15);
The declare for the header part of a record is shown in Figure 106.
Dcl
1 Xin_Hdr Based( null() ), /* Header portion */
/* */
2 Xin_Hdr_Prod /* Language code */
fixed bin(8) unsigned, /* */
/* */
2 Xin_Hdr_Rect /* Record type */
unal ordinal xin_Rect, /* */
/* */
2 Xin_Hdr_Level /* SYSADATA level */
fixed bin(8) unsigned, /* */
/* */
2 * union, /* */
3 xin_Hdr_Flags bit(8), /* flags */
3 *, /* */
4 * bit(6), /* Reserved */
4 Xin_Hdr_Little_Endian /* ints are little endian */
bit(1), /* */
4 Xin_Hdr_Cont bit(1), /* Record continued in next rec */
/* */
2 Xin_Hdr_Edition /* compiler "edition" */
fixed bin(8) unsigned, /* */
/* */
2 Xin_Hdr_Fill bit(32), /* reserved */
/* */
2 Xin_Hdr_Data_Len /* length of data part */
fixed bin(16) unsigned, /* */
/* */
2 Xin_Hdr_End char(0); /* */