• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

rpmio/tar.h

Go to the documentation of this file.
00001 #ifndef H_TAR
00002 #define H_TAR
00003 
00011 typedef struct tarHeader_s * tarHeader;
00012 
00013 /* Tar file constants */
00014 # define TAR_MAGIC          "ustar"     /* ustar and a null */
00015 # define TAR_VERSION        "  "        /* Be compatable with GNU tar format */
00016 
00017 #define TAR_BLOCK_SIZE          512
00018 #define TAR_MAGIC_LEN           6
00019 #define TAR_VERSION_LEN         2
00020 
00021 /* POSIX tar Header Block, from POSIX 1003.1-1990  */
00022 #define TAR_NAME_SIZE           100
00023 
00027 struct tarHeader_s {            /* byte offset */
00028         char name[TAR_NAME_SIZE];       /*   0-99 */
00029         char mode[8];           /* 100-107 */           /* mode */
00030         char uid[8];            /* 108-115 */           /* uid */
00031         char gid[8];            /* 116-123 */           /* gid */
00032         char filesize[12];      /* 124-135 */           /* ilesize */
00033         char mtime[12];         /* 136-147 */           /* mtime */
00034         char checksum[8];       /* 148-155 */           /* checksum */
00035         char typeflag;          /* 156-156 */
00036         char linkname[TAR_NAME_SIZE];   /* 157-256 */
00037         char magic[6];          /* 257-262 */           /* magic */
00038         char version[2];        /* 263-264 */
00039         char uname[32];         /* 265-296 */
00040         char gname[32];         /* 297-328 */
00041         char devMajor[8];       /* 329-336 */           /* devMajor */
00042         char devMinor[8];       /* 337-344 */           /* devMinor */
00043         char prefix[155];       /* 345-499 */
00044         char padding[12];       /* 500-512 (pad to exactly TAR_BLOCK_SIZE) */
00045 };
00046 
00047 /*@unchecked@*/
00048 extern int _tar_debug;
00049 
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053 
00060 int tarHeaderRead(void * _iosm, struct stat * st)
00061         /*@globals fileSystem, internalState @*/
00062         /*@modifies _iosm, *st, fileSystem, internalState @*/;
00063 
00070 int tarHeaderWrite(void * _iosm, struct stat * st)
00071         /*@globals fileSystem, internalState @*/
00072         /*@modifies _iosm, fileSystem, internalState @*/;
00073 
00079 int tarTrailerWrite(void * _iosm)
00080         /*@globals fileSystem, internalState @*/
00081         /*@modifies _iosm, fileSystem, internalState @*/;
00082 
00083 #ifdef __cplusplus
00084 }
00085 #endif
00086 
00087 #endif  /* H_TAR */

Generated on Fri Dec 3 2010 20:53:19 for rpm by  doxygen 1.7.2