14887Schin 24887Schin /* : : generated by proto : : */ 34887Schin /*********************************************************************** 44887Schin * * 54887Schin * This software is part of the ast package * 6*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 74887Schin * and is licensed under the * 84887Schin * Common Public License, Version 1.0 * 98462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 104887Schin * * 114887Schin * A copy of the License is available at * 124887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 134887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 144887Schin * * 154887Schin * Information and Software Systems Research * 164887Schin * AT&T Research * 174887Schin * Florham Park NJ * 184887Schin * * 194887Schin * Glenn Fowler <gsf@research.att.com> * 204887Schin * David Korn <dgk@research.att.com> * 214887Schin * Phong Vo <kpv@research.att.com> * 224887Schin * * 234887Schin ***********************************************************************/ 244887Schin 254887Schin /* 264887Schin * Standard Archive Format 274887Schin * USTAR - Uniform Standard Tape ARchive 284887Schin */ 294887Schin 304887Schin #ifndef _TAR_H 314887Schin #if !defined(__PROTO__) 324887Schin #include <prototyped.h> 334887Schin #endif 344887Schin #if !defined(__LINKAGE__) 354887Schin #define __LINKAGE__ /* 2004-08-11 transition */ 364887Schin #endif 374887Schin 384887Schin #define _TAR_H 394887Schin 404887Schin #define TBLOCK 512 414887Schin #define NAMSIZ 100 424887Schin #define PFXSIZ 155 434887Schin 444887Schin #define TMODLEN 8 454887Schin #define TUIDLEN 8 464887Schin #define TGIDLEN 8 474887Schin #define TSIZLEN 12 484887Schin #define TMTMLEN 12 494887Schin #define TCKSLEN 8 504887Schin 514887Schin #define TMAGIC "ustar" /* ustar and a null */ 524887Schin #define TMAGLEN 6 534887Schin #define TVERSION "00" /* 00 and no null */ 544887Schin #define TVERSLEN 2 554887Schin #define TUNMLEN 32 564887Schin #define TGNMLEN 32 574887Schin #define TDEVLEN 8 584887Schin 594887Schin /* 604887Schin * values used in typeflag field 614887Schin */ 624887Schin 634887Schin #define REGTYPE '0' /* regular file */ 644887Schin #define AREGTYPE 0 /* alternate REGTYPE */ 654887Schin #define LNKTYPE '1' /* hard link */ 664887Schin #define SYMTYPE '2' /* soft link */ 674887Schin #define CHRTYPE '3' /* character special */ 684887Schin #define BLKTYPE '4' /* block special */ 694887Schin #define DIRTYPE '5' /* directory */ 704887Schin #define FIFOTYPE '6' /* FIFO special */ 714887Schin #define CONTTYPE '7' /* reserved */ 724887Schin #define SOKTYPE '8' /* socket */ 734887Schin #define EXTTYPE 'x' /* extended header */ 744887Schin #define GLBTYPE 'g' /* global extended header */ 754887Schin #define LLNKTYPE 'K' /* long link path */ 764887Schin #define LREGTYPE 'L' /* long file path */ 774887Schin #define VERTYPE 'V' /* version */ 784887Schin 794887Schin /* 804887Schin * bits used in mode field 814887Schin */ 824887Schin 834887Schin #define TSUID 04000 /* set uid on exec */ 844887Schin #define TSGID 02000 /* set gid on exec */ 854887Schin #define TSVTX 01000 /* sticky bit -- reserved */ 864887Schin 874887Schin /* 884887Schin * file permissions 894887Schin */ 904887Schin 914887Schin #define TUREAD 00400 /* read by owner */ 924887Schin #define TUWRITE 00200 /* write by owner */ 934887Schin #define TUEXEC 00100 /* execute by owner */ 944887Schin #define TGREAD 00040 /* read by group */ 954887Schin #define TGWRITE 00020 /* execute by group */ 964887Schin #define TGEXEC 00010 /* write by group */ 974887Schin #define TOREAD 00004 /* read by other */ 984887Schin #define TOWRITE 00002 /* write by other */ 994887Schin #define TOEXEC 00001 /* execute by other */ 1004887Schin 1014887Schin struct header 1024887Schin { 1034887Schin char name[NAMSIZ]; 1044887Schin char mode[TMODLEN]; 1054887Schin char uid[TUIDLEN]; 1064887Schin char gid[TGIDLEN]; 1074887Schin char size[TSIZLEN]; 1084887Schin char mtime[TMTMLEN]; 1094887Schin char chksum[TCKSLEN]; 1104887Schin char typeflag; 1114887Schin char linkname[NAMSIZ]; 1124887Schin char magic[TMAGLEN]; 1134887Schin char version[TVERSLEN]; 1144887Schin char uname[TUNMLEN]; 1154887Schin char gname[TGNMLEN]; 1164887Schin char devmajor[TDEVLEN]; 1174887Schin char devminor[TDEVLEN]; 1184887Schin char prefix[PFXSIZ]; 1194887Schin }; 1204887Schin 1214887Schin union hblock 1224887Schin { 1234887Schin char dummy[TBLOCK]; 1244887Schin struct header dbuf; 1254887Schin }; 1264887Schin 1274887Schin #endif 128