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];
};