home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Mint / mntinc25.zoo / gnu-ar.h < prev    next >
C/C++ Source or Header  |  1992-09-05  |  2KB  |  50 lines

  1. #ifndef _GNUAR_H
  2. #define _GNUAR_H
  3.  
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7.  
  8. /* this file was hacked together by jrd, cause there doesn't seem to be one
  9.    supplied with the ar.c etc that I found on frosted-flakes.
  10.    The structure of these things was deduced from looking at the code, and
  11.    dumping a file produced by ar.c when compiled on a Eunuchs that I had
  12.    lying around.  The sizes of things are not the same as what Eunuchs
  13.    appears to use, but who cares; they were picked for utility on the atari
  14. */
  15.  
  16. /* this appears to be nothing more that a frobule that allows us to recognize
  17.    an object library when we see one.  It looks like any string will do... */
  18. #define    ARMAG    "Gnu is Not eUnuchs.\n"
  19.  
  20. /* the size of the above tag? */
  21. #define    SARMAG    20
  22.  
  23. /* a thing that's shoved into each module header?  This appears to be
  24.    required to be 2 bytes, as there's a BCMP in there with a 2 wired into
  25.    its calling sequence... */
  26. #define    ARFMAG    "\r\n"
  27.  
  28. /* a header for a module of the library. */
  29. struct ar_hdr 
  30.     {
  31.     char ar_name[16];    /* the module name.  Strictly speaking, 
  32.                    12 ought to be enough, as that's the
  33.                    biggest file name we'll see, and we
  34.                    don't see directories, but we'll leave 
  35.                    a little slush in case somebody wants
  36.                    to stick a null in there. */
  37.     char ar_size[12];    /* ascii size number */
  38.     char ar_date[12];    /* ascii representation of date fixnum */
  39.     char ar_mode[8];    /* ??? protection bits??? */
  40.     char ar_uid[4];        /* who knows? */
  41.     char ar_gid[4];        /* ditto... */
  42.     char ar_fmag[2];    /* does this have to be last? */
  43.     };
  44.  
  45. #ifdef __cplusplus
  46. }
  47. #endif
  48.  
  49. #endif /* _GNUAR_H */
  50.