summaryrefslogtreecommitdiff
path: root/hw/xfree86/loader/ar.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xfree86/loader/ar.h')
-rw-r--r--hw/xfree86/loader/ar.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/hw/xfree86/loader/ar.h b/hw/xfree86/loader/ar.h
new file mode 100644
index 000000000..4dbc97901
--- /dev/null
+++ b/hw/xfree86/loader/ar.h
@@ -0,0 +1,77 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/ar.h,v 1.3 1998/07/25 16:56:12 dawes Exp $ */
+
+
+#ifndef _AR_H
+#define _AR_H
+
+#define ARMAG "!<arch>\n"
+#define SARMAG 8
+#define ARFMAG "`\n"
+
+#if !(defined(__powerpc__) && defined(Lynx))
+struct ar_hdr {
+ char ar_name[16],
+ ar_date[12],
+ ar_uid[6],
+ ar_gid[6],
+ ar_mode[8],
+ ar_size[10],
+ ar_fmag[2];
+};
+
+#else
+
+#define AIAMAG "<aiaff>\n"
+#define SAIAMAG 8
+#define AIAFMAG "`\n"
+
+struct fl_hdr /* archive fixed length header - printable ascii */
+{
+ char fl_magic[SAIAMAG]; /* Archive file magic string */
+ char fl_memoff[12]; /* Offset to member table */
+ char fl_gstoff[12]; /* Offset to global symbol table */
+ char fl_fstmoff[12]; /* Offset to first archive member */
+ char fl_lstmoff[12]; /* Offset to last archive member */
+ char fl_freeoff[12]; /* Offset to first mem on free list */
+};
+
+#define FL_HDR struct fl_hdr
+#define FL_HSZ sizeof(FL_HDR)
+
+
+struct ar_hdr /* archive file member header - printable ascii */
+{
+ char ar_size[12]; /* file member size - decimal */
+ char ar_nxtmem[12]; /* pointer to next member - decimal */
+ char ar_prvmem[12]; /* pointer to previous member - decimal */
+ char ar_date[12]; /* file member date - decimal */
+ char ar_uid[12]; /* file member user id - decimal */
+ char ar_gid[12]; /* file member group id - decimal */
+ char ar_mode[12]; /* file member mode - octal */
+ char ar_namlen[4]; /* file member name length - decimal */
+ union
+ {
+ char an_name[2]; /* variable length member name */
+ char an_fmag[2]; /* AIAFMAG - string to end header */
+ } _ar_name; /* and variable length name */
+};
+
+#define ar_name _ar_name.an_name
+
+/*
+ * Note: 'ar_namlen' contains the length of the member name which
+ * may be up to 255 chars. The character string containing
+ * the name begins at '_ar_name.ar_name'. The terminating
+ * string AIAFMAG, is only cosmetic. File member contents begin
+ * at the first even byte boundary past 'header position +
+ * sizeof(struct ar_hdr) + ar_namlen', and continue for
+ * 'ar_size' bytes.
+*/
+
+#define AR_HDR struct ar_hdr
+#define AR_HSZ sizeof(AR_HDR)
+
+#endif /* !__powerpc__ && Lynx */
+
+#endif /* _AR_H */
+