1 | /* $XFree86: xc/programs/Xserver/hw/xfree86/loader/ar.h,v 1.3 1998/07/25 16:56:12 dawes Exp $ */
|
---|
2 |
|
---|
3 | #ifdef HAVE_XORG_CONFIG_H
|
---|
4 | #include <xorg-config.h>
|
---|
5 | #endif
|
---|
6 |
|
---|
7 | #ifndef _AR_H
|
---|
8 | #define _AR_H
|
---|
9 |
|
---|
10 | #define ARMAG "!<arch>\n"
|
---|
11 | #define SARMAG 8
|
---|
12 | #define ARFMAG "`\n"
|
---|
13 |
|
---|
14 | #if !(defined(__powerpc__) && defined(Lynx))
|
---|
15 | struct ar_hdr {
|
---|
16 | char ar_name[16];
|
---|
17 | char ar_date[12];
|
---|
18 | char ar_uid[6];
|
---|
19 | char ar_gid[6];
|
---|
20 | char ar_mode[8];
|
---|
21 | char ar_size[10];
|
---|
22 | char ar_fmag[2];
|
---|
23 | };
|
---|
24 |
|
---|
25 | #else
|
---|
26 |
|
---|
27 | #define AIAMAG "<aiaff>\n"
|
---|
28 | #define SAIAMAG 8
|
---|
29 | #define AIAFMAG "`\n"
|
---|
30 |
|
---|
31 | struct fl_hdr { /* archive fixed length header - printable ascii */
|
---|
32 | char fl_magic[SAIAMAG]; /* Archive file magic string */
|
---|
33 | char fl_memoff[12]; /* Offset to member table */
|
---|
34 | char fl_gstoff[12]; /* Offset to global symbol table */
|
---|
35 | char fl_fstmoff[12]; /* Offset to first archive member */
|
---|
36 | char fl_lstmoff[12]; /* Offset to last archive member */
|
---|
37 | char fl_freeoff[12]; /* Offset to first mem on free list */
|
---|
38 | };
|
---|
39 |
|
---|
40 | #define FL_HDR struct fl_hdr
|
---|
41 | #define FL_HSZ sizeof(FL_HDR)
|
---|
42 |
|
---|
43 | struct ar_hdr { /* archive file member header - printable ascii */
|
---|
44 | char ar_size[12]; /* file member size - decimal */
|
---|
45 | char ar_nxtmem[12]; /* pointer to next member - decimal */
|
---|
46 | char ar_prvmem[12]; /* pointer to previous member - decimal */
|
---|
47 | char ar_date[12]; /* file member date - decimal */
|
---|
48 | char ar_uid[12]; /* file member user id - decimal */
|
---|
49 | char ar_gid[12]; /* file member group id - decimal */
|
---|
50 | char ar_mode[12]; /* file member mode - octal */
|
---|
51 | char ar_namlen[4]; /* file member name length - decimal */
|
---|
52 | union {
|
---|
53 | char an_name[2]; /* variable length member name */
|
---|
54 | char an_fmag[2]; /* AIAFMAG - string to end header */
|
---|
55 | } _ar_name; /* and variable length name */
|
---|
56 | };
|
---|
57 |
|
---|
58 | #define ar_name _ar_name.an_name
|
---|
59 |
|
---|
60 | /*
|
---|
61 | * Note: 'ar_namlen' contains the length of the member name which
|
---|
62 | * may be up to 255 chars. The character string containing
|
---|
63 | * the name begins at '_ar_name.ar_name'. The terminating
|
---|
64 | * string AIAFMAG, is only cosmetic. File member contents begin
|
---|
65 | * at the first even byte boundary past 'header position +
|
---|
66 | * sizeof(struct ar_hdr) + ar_namlen', and continue for
|
---|
67 | * 'ar_size' bytes.
|
---|
68 | */
|
---|
69 |
|
---|
70 | #define AR_HDR struct ar_hdr
|
---|
71 | #define AR_HSZ sizeof(AR_HDR)
|
---|
72 |
|
---|
73 | #endif /* !__powerpc__ && Lynx */
|
---|
74 |
|
---|
75 | #endif /* _AR_H */
|
---|