#sccs "@(#)inchead:ar.h 1.3" /* 6.0 COMMON ARCHIVE FORMAT ARCHIVE File Organization: _______________________________________________ |__________ARCHIVE_HEADER_DATA________________| | | | Archive Header "ar_hdr" | |.............................................| | | | Symbol Directory "ar_sym" | | | |_____________________________________________| |________ARCHIVE_FILE_MEMBER_1________________| | | | Archive File Header "arf_hdr" | |.............................................| | | | Member Contents (either a.out.h | | format or text file) | |_____________________________________________| | | | . . . | | . . . | | . . . | |_____________________________________________| |________ARCHIVE_FILE_MEMBER_n________________| | | | Archive File Header "arf_hdr" | |.............................................| | | | Member Contents (either a.out.h | | format or text file) | |_____________________________________________| */ #define ARMAG5 "" #define SARMAG5 4 struct ar_hdr5 { /* archive header */ char ar_magic[SARMAG5]; /* magic number */ char ar_name[16]; /* archive name */ char ar_date[4]; /* date of last archive modification */ char ar_syms[4]; /* number of ar_sym entries */ }; struct ar_sym5 { /* archive symbol table entry */ char sym_name[8]; /* symbol name, recognized by ld */ char sym_ptr[4]; /* archive position of symbol */ }; struct arf_hdr5 { /* archive file member header */ char arf_name[16]; /* file member name */ char arf_date[4]; /* file member date */ char arf_uid[4]; /* file member user identification */ char arf_gid[4]; /* file member group identification */ char arf_mode[4]; /* file member mode */ char arf_size[4]; /* file member size */ }; /* 6.0 COMMON ARCHIVE FORMAT * * ARCHIVE File Organization: * _______________________________________________ * |__________ARCHIVE_MAGIC_STRING_______________| * |__________ARCHIVE_FILE_MEMBER_1______________| * | | * | Archive File Header "ar_hdr" | * |.............................................| * | Member Contents | * | 1. External symbol directory | * | 2. Text file | * |_____________________________________________| * |________ARCHIVE_FILE_MEMBER_2________________| * | "ar_hdr" | * |.............................................| * | Member Contents (.o or text file) | * |_____________________________________________| * | . . . | * | . . . | * | . . . | * |_____________________________________________| * |________ARCHIVE_FILE_MEMBER_n________________| * | "ar_hdr" | * |.............................................| * | Member Contents | * |_____________________________________________| * */ #define ARMAG "!\n" #define SARMAG 8 #define ARFMAG "`\n" struct ar_hdr /* archive file member header - printable ascii */ { char ar_name[16]; /* file member name - `/' terminated */ char ar_date[12]; /* file member date - decimal */ char ar_uid[6]; /* file member user id - decimal */ char ar_gid[6]; /* file member group id - decimal */ char ar_mode[8]; /* file member mode - octal */ char ar_size[10]; /* file member size - decimal */ char ar_fmag[2]; /* ARFMAG - string to end header */ }; #if u370 || pdp11 #define ARMAG 0177545 struct ar_hdr { char ar_name[14]; long ar_date; char ar_uid; char ar_gid; int ar_mode; long ar_size; }; #endif