|
|
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.