|
|
1.1 ! root 1: /* ! 2: * Standard Archive Format ! 3: * USTAR - Uniform Standard Tape ARchive ! 4: */ ! 5: ! 6: #ifndef TBLOCK ! 7: ! 8: #define TBLOCK 512 ! 9: #define NAMSIZ 100 ! 10: #define PFXSIZ 155 ! 11: ! 12: #define TMODLEN 8 ! 13: #define TUIDLEN 8 ! 14: #define TGIDLEN 8 ! 15: #define TSIZLEN 12 ! 16: #define TMTMLEN 12 ! 17: #define TCKSLEN 8 ! 18: ! 19: #define TMAGIC "ustar" /* ustar and a null */ ! 20: #define TMAGLEN 6 ! 21: #define TVERSION "00" /* 00 and no null */ ! 22: #define TVERSLEN 2 ! 23: #define TUNMLEN 32 ! 24: #define TGNMLEN 32 ! 25: #define TDEVLEN 8 ! 26: ! 27: /* ! 28: * values used in typeflag field ! 29: */ ! 30: ! 31: #define REGTYPE '0' /* regular file */ ! 32: #define AREGTYPE 0 /* alternate REGTYPE */ ! 33: #define LNKTYPE '1' /* hard link */ ! 34: #define SYMTYPE '2' /* soft link */ ! 35: #define CHRTYPE '3' /* character special */ ! 36: #define BLKTYPE '4' /* block special */ ! 37: #define DIRTYPE '5' /* directory */ ! 38: #define FIFOTYPE '6' /* FIFO special */ ! 39: #define CONTYPE '7' /* reserved */ ! 40: #define SOKTYPE '8' /* socket -- reserved */ ! 41: #define VERTYPE 'V' /* version -- reserved */ ! 42: ! 43: /* ! 44: * bits used in mode field ! 45: */ ! 46: ! 47: #define TSUID 04000 /* set uid on exec */ ! 48: #define TSGID 02000 /* set gid on exec */ ! 49: #define TSVTX 01000 /* sticky bit -- reserved */ ! 50: ! 51: /* ! 52: * file permissions ! 53: */ ! 54: ! 55: #define TUREAD 00400 /* read by owner */ ! 56: #define TUWRITE 00200 /* write by owner */ ! 57: #define TUEXEC 00100 /* execute by owner */ ! 58: #define TGREAD 00040 /* read by group */ ! 59: #define TGWRITE 00020 /* execute by group */ ! 60: #define TGEXEC 00010 /* write by group */ ! 61: #define TOREAD 00004 /* read by other */ ! 62: #define TOWRITE 00002 /* write by other */ ! 63: #define TOEXEC 00001 /* execute by other */ ! 64: ! 65: struct header ! 66: { ! 67: char name[NAMSIZ]; ! 68: char mode[TMODLEN]; ! 69: char uid[TUIDLEN]; ! 70: char gid[TGIDLEN]; ! 71: char size[TSIZLEN]; ! 72: char mtime[TMTMLEN]; ! 73: char chksum[TCKSLEN]; ! 74: char typeflag; ! 75: char linkname[NAMSIZ]; ! 76: char magic[TMAGLEN]; ! 77: char version[TVERSLEN]; ! 78: char uname[TUNMLEN]; ! 79: char gname[TGNMLEN]; ! 80: char devmajor[TDEVLEN]; ! 81: char devminor[TDEVLEN]; ! 82: char prefix[PFXSIZ]; ! 83: }; ! 84: ! 85: union hblock ! 86: { ! 87: char dummy[TBLOCK]; ! 88: struct header dbuf; ! 89: }; ! 90: ! 91: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.