This document contains a C definition of the standard label format for tapes. Programming assistance is not provided in creating programs which make use of this information.
Standard label tapes are 3 records (blocks) of 80 bytes (one line of EBCDIC text) in one write as a file or image on tape. These records are VOL1, HDR1 and HDR2.
/* * Lengths of VOL1 header fields. */ #define VOL1_LABID 3 /* Label Identifier (VOL) */ #define VOL1_LABNO 1 /* Label Number (1) */ #define VOL1_VOLID 6 /* Volume Identifier ("a" characters) */ #define VOL1_ACCES 1 /* Accessibility ("a" chars, " " = all) */ #define VOL1_RSVD1 26 /* Reserved for Future Standardization */ #define VOL1_OWNID 14 /* Owner Identifier ("a" characters) */ #define VOL1_RSVD2 28 /* Reserved for Future Standardization */ #define VOL1_LABSV 1 /* Label-Standard Version (1, 2, 3) */ /* * Lengths of HDR1, EOF1, and EOV1 header fields. */ #define HDR1_LABID 3 /* Label Identifier (HDR, EOF, EOV) */ #define HDR1_LABNO 1 /* Label Number (1) */ #define HDR1_FILID 17 /* File Identifier ("a" characters) */ #define HDR1_FSTID 6 /* File-Set Identifier ("a" chars) */ #define HDR1_FSCNO 4 /* File Section Number ("n" chars) */ #define HDR1_FSQNO 4 /* File Sequence Number ("n" chars) */ #define HDR1_GENNO 4 /* Generation Number ("n" characters) */ #define HDR1_GNVNO 2 /* Generation Version Number ("n" chars) */ #define HDR1_CRDAT 6 /* Creation Date (" yyddd") ("n" chars) */ #define HDR1_EXDAT 6 /* Expiration Date (" yyddd") */ #define HDR1_ACCES 1 /* Accessibility ("a" char, " " = all) */ #define HDR1_BLKCT 6 /* Block Count ("n" chars) */ #define HDR1_SYSCD 13 /* System Code ("a" characters) */ #define HDR1_RSVD1 7 /* Reserved for Future Standardization */ /* * Lengths of HDR2, EOF2, and EOV2 header fields. */ #define HDR2_LABID 3 /* Label Identifier (HDR, EOF, EOV) */ #define HDR2_LABNO 1 /* Label Number (2) */ #define HDR2_RCFMT 1 /* Record Format (F, D) */ #define HDR2_BLKLN 5 /* Block Length ("n" characters) */ #define HDR2_RECLN 5 /* Record Length ("n" characters) */ #define HDR2_RSVD1 35 /* Reserved for System Use */ #define HDR2_BOFFL 2 /* Buffer-Offset Length ("n" chars) */ #define HDR2_RSVD2 28 /* Reserved for Future Standardization */ /* * VOL1 label structure. */ struct vol1_label { char labid[VOL1_LABID]; char labno; char volid[VOL1_VOLID]; char acces; char rsvd1[VOL1_RSVD1]; char ownid[VOL1_OWNID]; char rsvd2[VOL1_RSVD2]; char labsv; }; /* * HDR1, EOF1, EOV1 label structure. */ struct hdr1_label { char labid[HDR1_LABID]; char labno; char filid[HDR1_FILID]; char fstid[HDR1_FSTID]; char fscno[HDR1_FSCNO]; char fsqno[HDR1_FSQNO]; char genno[HDR1_GENNO]; char gnvno[HDR1_GNVNO]; char crdat[HDR1_CRDAT]; char exdat[HDR1_EXDAT]; char acces; char blkct[HDR1_BLKCT]; char syscd[HDR1_SYSCD]; char rsvd1[HDR1_RSVD1]; }; /* * HDR2, EOF2, EOV2 label structure. */ struct hdr2_label { char labid[HDR2_LABID]; char labno; char rcfmt; char blkln[HDR2_BLKLN]; char recln[HDR2_RECLN]; char rsvd1[HDR2_RSVD1]; char boffl[HDR2_BOFFL]; char rsvd2[HDR2_RSVD2]; };