xref: /illumos-gate/usr/src/head/tar.h (revision ba2be53024c0b999e74ba9adcd7d80fec5df8c57)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 /*
22  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
25 /*	Copyright (c) 1988 AT&T	*/
26 /*	  All Rights Reserved  	*/
27 
28 #ifndef _TAR_H
29 #define	_TAR_H
30 
31 #pragma ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 1.2	*/
32 
33 #ifdef	__cplusplus
34 extern "C" {
35 #endif
36 
37 #include <sys/feature_tests.h>
38 
39 #define	TMAGIC		"ustar"
40 #define	TMAGLEN		6
41 #define	TVERSION	"00"
42 #define	TVERSLEN	2
43 
44 /*
45  * Typeflag field definitions.
46  */
47 
48 #define	REGTYPE		'0'
49 #define	AREGTYPE	'\0'
50 #define	LNKTYPE		'1'
51 #define	SYMTYPE		'2'
52 #define	CHRTYPE		'3'
53 #define	BLKTYPE		'4'
54 #define	DIRTYPE		'5'
55 #define	FIFOTYPE	'6'
56 #define	CONTTYPE	'7'
57 
58 /*
59  * Mode fild bit definitions.
60  */
61 
62 #define	TSUID		04000
63 #define	TSGID		02000
64 #define	TSVTX		01000
65 #define	TUREAD		00400
66 #define	TUWRITE		00200
67 #define	TUEXEC		00100
68 #define	TGREAD		00040
69 #define	TGWRITE		00020
70 #define	TGEXEC		00010
71 #define	TOREAD		00004
72 #define	TOWRITE		00002
73 #define	TOEXEC		00001
74 
75 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
76 /*
77  *      Types used in ancillary files
78  */
79 #define	ACL_HDR		'A'	/* Access Control List */
80 #define	LBL_TYPE	'L'	/* Trusted Extensions file label */
81 #define	DIR_TYPE	'D'	/* Trusted Extensions directory label */
82 /*
83  * Attribute types used in Trusted Solaris ancillary files
84  * that are interpreted for backward compatibility
85  */
86 #define	SLD_TYPE	'S'	/* single-level directory component */
87 #define	PATH_TYPE	'P'	/* Path component */
88 #define	MLD_TYPE	'M'	/* multi-level directory component */
89 #define	FILE_TYPE	'F'	/* Have to handle files differently */
90 #define	APRIV_TYPE	'P'	/* allowed privileges data type in file */
91 #define	FPRIV_TYPE	'p'	/* forced privileges data type in file */
92 #define	COMP_TYPE	'C'	/* path components, use for MLD */
93 #define	ATTR_FLAG_TYPE	'F'	/* file attribute flag bytes data type */
94 #define	LK_COMP_TYPE	'K'	/* link data path component */
95 #endif
96 
97 #ifdef	__cplusplus
98 }
99 #endif
100 
101 #endif	/* _TAR_H */
102