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 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
27 /* All Rights Reserved */
28
29 #ifndef _CPIO_H
30 #define _CPIO_H
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 #include <stdio.h>
37 #include <archives.h>
38
39 /* Option Character keys (OC#), where '#' is the option character specified. */
40
41 #define OCa 0x1
52 #define OCr 0x800
53 #define OCs 0x1000
54 #define OCt 0x2000
55 #define OCu 0x4000
56 #define OCv 0x8000
57 #define OCA 0x10000
58 #define OCB 0x20000
59 #define OCC 0x40000
60 #define OCE 0x80000
61 #define OCH 0x100000
62 #define OCI 0x200000
63 #define OCL 0x400000
64 #define OCM 0x800000
65 #define OCO 0x1000000
66 #define OCR 0x2000000
67 #define OCS 0x4000000
68 #define OCV 0x8000000
69 #define OC6 0x10000000
70 #define BSM 0x20000000
71 #define OCP 0x40000000
72
73 /* Sparse file support */
74 #define C_ISSPARSE 0200000
75 #define S_IFSPARSE 0x10000
76 #define HIGH_ORD_MASK 0x30000
77 #define S_ISSPARSE(mode) \
78 (S_ISREG(mode) && (mode & HIGH_ORD_MASK) == S_IFSPARSE)
79
80 /* Invalid option masks for each action option (-i, -o or -p). */
81
82 #define INV_MSK4i (OCo | OCp | OCA | OCL | OCO)
83
84 #define INV_MSK4o (OCi | OCp | OCE | OCI | OCR)
85
86 #define INV_MSK4p (OCf | OCi | OCo | OCr | OCt | OCA \
87 | OCE | OCH | OCI | OCO)
88
89 /* Header types */
90
91 #define NONE 0 /* No header value verified */
|
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 (c) 2012 Gary Mills
23 *
24 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
25 * Use is subject to license terms.
26 */
27
28 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
29 /* All Rights Reserved */
30
31 #ifndef _CPIO_H
32 #define _CPIO_H
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 #include <stdio.h>
39 #include <archives.h>
40
41 /* Option Character keys (OC#), where '#' is the option character specified. */
42
43 #define OCa 0x1
54 #define OCr 0x800
55 #define OCs 0x1000
56 #define OCt 0x2000
57 #define OCu 0x4000
58 #define OCv 0x8000
59 #define OCA 0x10000
60 #define OCB 0x20000
61 #define OCC 0x40000
62 #define OCE 0x80000
63 #define OCH 0x100000
64 #define OCI 0x200000
65 #define OCL 0x400000
66 #define OCM 0x800000
67 #define OCO 0x1000000
68 #define OCR 0x2000000
69 #define OCS 0x4000000
70 #define OCV 0x8000000
71 #define OC6 0x10000000
72 #define BSM 0x20000000
73 #define OCP 0x40000000
74 #define OCq 0x80000000
75
76 /* Sparse file support */
77 #define C_ISSPARSE 0200000
78 #define S_IFSPARSE 0x10000
79 #define HIGH_ORD_MASK 0x30000
80 #define S_ISSPARSE(mode) \
81 (S_ISREG(mode) && (mode & HIGH_ORD_MASK) == S_IFSPARSE)
82
83 /* Invalid option masks for each action option (-i, -o or -p). */
84
85 #define INV_MSK4i (OCo | OCp | OCA | OCL | OCO)
86
87 #define INV_MSK4o (OCi | OCp | OCE | OCI | OCR)
88
89 #define INV_MSK4p (OCf | OCi | OCo | OCr | OCt | OCA \
90 | OCE | OCH | OCI | OCO)
91
92 /* Header types */
93
94 #define NONE 0 /* No header value verified */
|