xref: /onnv-gate/usr/src/lib/libast/sparcv9/include/ast/tar.h (revision 12068:08a39a083754)
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