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