Annotation of researchv9/jerq/sgs/inc/ar.h, revision 1.1

1.1     ! root        1: /*     @(#)ar.h        1.1 11/12/83    */
        !             2: 
        !             3: #if PORTAR
        !             4: /*             COMMON ARCHIVE FORMAT
        !             5: *
        !             6: *      ARCHIVE File Organization:
        !             7: *      _______________________________________________
        !             8: *      |__________ARCHIVE_MAGIC_STRING_______________|
        !             9: *      |__________ARCHIVE_FILE_MEMBER_1______________|
        !            10: *      |                                             |
        !            11: *      |       Archive File Header "ar_hdr"          |
        !            12: *      |.............................................|
        !            13: *      |       Member Contents                       |
        !            14: *      |               1. External symbol directory  |
        !            15: *      |               2. Text file                  |
        !            16: *      |_____________________________________________|
        !            17: *      |________ARCHIVE_FILE_MEMBER_2________________|
        !            18: *      |               "ar_hdr"                      |
        !            19: *      |.............................................|
        !            20: *      |       Member Contents (.o or text file)     |
        !            21: *      |_____________________________________________|
        !            22: *      |       .               .               .     |
        !            23: *      |       .               .               .     |
        !            24: *      |       .               .               .     |
        !            25: *      |_____________________________________________|
        !            26: *      |________ARCHIVE_FILE_MEMBER_n________________|
        !            27: *      |               "ar_hdr"                      |
        !            28: *      |.............................................|
        !            29: *      |               Member Contents               |
        !            30: *      |_____________________________________________|
        !            31: *
        !            32: */
        !            33: 
        !            34: #define ARMAG  "!<arch>\n"
        !            35: #define SARMAG 8
        !            36: #define ARFMAG "`\n"
        !            37: 
        !            38: struct ar_hdr          /* archive file member header - printable ascii */
        !            39: {
        !            40:        char    ar_name[16];    /* file member name - `/' terminated */
        !            41:        char    ar_date[12];    /* file member date - decimal */
        !            42:        char    ar_uid[6];      /* file member user id - decimal */
        !            43:        char    ar_gid[6];      /* file member group id - decimal */
        !            44:        char    ar_mode[8];     /* file member mode - octal */
        !            45:        char    ar_size[10];    /* file member size - decimal */
        !            46:        char    ar_fmag[2];     /* ARFMAG - string to end header */
        !            47: };
        !            48: 
        !            49: #else 
        !            50: #if PORT5AR
        !            51: 
        !            52: #define        ARMAG   "<ar>"
        !            53: #define        SARMAG  4
        !            54: 
        !            55: 
        !            56: struct ar_hdr {                        /* archive header */
        !            57:        char    ar_magic[SARMAG];       /* magic number */
        !            58:        char    ar_name[16];            /* archive name */
        !            59:        char    ar_date[4];             /* date of last archive modification */
        !            60:        char    ar_syms[4];             /* number of ar_sym entries */
        !            61: };
        !            62: 
        !            63: struct ar_sym {                        /* archive symbol table entry */
        !            64:        char    sym_name[8];            /* symbol name, recognized by ld */
        !            65:        char    sym_ptr[4];             /* archive position of symbol */
        !            66: };
        !            67: 
        !            68: struct arf_hdr {                       /* archive file member header */
        !            69:        char    arf_name[16];           /* file member name */
        !            70:        char    arf_date[4];            /* file member date */
        !            71:        char    arf_uid[4];             /* file member user identification */
        !            72:        char    arf_gid[4];             /* file member group identification */
        !            73:        char    arf_mode[4];            /* file member mode */
        !            74:        char    arf_size[4];            /* file member size */
        !            75: };
        !            76: 
        !            77: #else
        !            78: 
        !            79: #define ARMAG  0177545
        !            80: struct ar_hdr
        !            81: {
        !            82:        char    ar_name[14];
        !            83:        long    ar_date;
        !            84:        char    ar_uid;
        !            85:        char    ar_gid;
        !            86:        int     ar_mode;
        !            87:        long    ar_size;
        !            88: };
        !            89: 
        !            90: #endif
        !            91: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.