xref: /illumos-gate/usr/src/head/tar.h (revision d8260c5137b0926a897a3763eca8997922ad7401)
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 #define	TMAGIC		"ustar"
38 #define	TMAGLEN		6
39 #define	TVERSION	"00"
40 #define	TVERSLEN	2
41 
42 /*
43  * Typeflag field definitions.
44  */
45 
46 #define	REGTYPE		'0'
47 #define	AREGTYPE	'\0'
48 #define	LNKTYPE		'1'
49 #define	SYMTYPE		'2'
50 #define	CHRTYPE		'3'
51 #define	BLKTYPE		'4'
52 #define	DIRTYPE		'5'
53 #define	FIFOTYPE	'6'
54 #define	CONTTYPE	'7'
55 
56 /*
57  * Mode fild bit definitions.
58  */
59 
60 #define	TSUID		04000
61 #define	TSGID		02000
62 #define	TSVTX		01000
63 #define	TUREAD		00400
64 #define	TUWRITE		00200
65 #define	TUEXEC		00100
66 #define	TGREAD		00040
67 #define	TGWRITE		00020
68 #define	TGEXEC		00010
69 #define	TOREAD		00004
70 #define	TOWRITE		00002
71 #define	TOEXEC		00001
72 
73 /*
74  *      Types used in ancillary files
75  */
76 #define	ACL_HDR		'A'	/* Access Control List */
77 #define	LBL_TYPE	'L'	/* Trusted Extensions file label */
78 #define	DIR_TYPE	'D'	/* Trusted Extensions directory label */
79 /*
80  * Attribute types used in Trusted Solaris ancillary files
81  * that are interpreted for backward compatibility
82  */
83 #define	SLD_TYPE	'S'	/* single-level directory component */
84 #define	PATH_TYPE	'P'	/* Path component */
85 #define	MLD_TYPE	'M'	/* multi-level directory component */
86 #define	FILE_TYPE	'F'	/* Have to handle files differently */
87 #define	APRIV_TYPE	'P'	/* allowed privileges data type in file */
88 #define	FPRIV_TYPE	'p'	/* forced privileges data type in file */
89 #define	COMP_TYPE	'C'	/* path components, use for MLD */
90 #define	ATTR_FLAG_TYPE	'F'	/* file attribute flag bytes data type */
91 #define	LK_COMP_TYPE	'K'	/* link data path component */
92 #ifdef	__cplusplus
93 }
94 #endif
95 
96 #endif	/* _TAR_H */
97