xref: /illumos-gate/usr/src/head/pkgstrct.h (revision 75eba5b6d79ed4d2ce3daf7b2806306b6b69a938)
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 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
22 /*	  All Rights Reserved  	*/
23 
24 /*
25  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
26  * Use is subject to license terms.
27  */
28 
29 #ifndef	_PKGSTRCT_H
30 #define	_PKGSTRCT_H
31 
32 #pragma ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 1.9	*/
33 
34 #include <time.h>
35 
36 #ifdef	__cplusplus
37 extern "C" {
38 #endif
39 
40 #define	CLSSIZ	64
41 #define	PKGSIZ	64
42 #define	ATRSIZ	64
43 
44 #define	BADFTYPE	'?'
45 #define	BADMODE		(mode_t)ULONG_MAX
46 #define	BADOWNER	"?"
47 #define	BADGROUP	"?"
48 #define	BADMAJOR	(major_t)ULONG_MAX
49 #define	BADMINOR	(minor_t)ULONG_MAX
50 #define	BADCLASS	"none"
51 #define	BADINPUT	1 /* not EOF */
52 #define	BADCONT		(-1L)
53 
54 extern char	*errstr;
55 
56 struct ainfo {
57 	char	*local;
58 	mode_t	mode;
59 	char	owner[ATRSIZ+1];
60 	char	group[ATRSIZ+1];
61 	major_t	major;
62 	minor_t	minor;
63 };
64 
65 struct cinfo {
66 	long		cksum;
67 	fsblkcnt_t	size;
68 	time_t		modtime;
69 };
70 
71 struct pinfo {
72 	char	status;
73 	char	pkg[PKGSIZ+1];
74 	char	editflag;
75 	char	aclass[ATRSIZ+1];
76 	struct pinfo
77 		*next;
78 };
79 
80 struct cfent {
81 	short	volno;
82 	char	ftype;
83 	char	pkg_class[CLSSIZ+1];
84 	int	pkg_class_idx;
85 	char	*path;
86 	struct ainfo ainfo;
87 	struct cinfo cinfo;
88 	short	npkgs;
89 	struct pinfo
90 		*pinfo;
91 };
92 
93 /* averify() & cverify() error codes */
94 #define	VE_EXIST	0x0001
95 #define	VE_FTYPE	0x0002
96 #define	VE_ATTR		0x0004
97 #define	VE_CONT		0x0008
98 #define	VE_FAIL		0x0010
99 #define	VE_TIME		0x0020
100 
101 #ifdef	__cplusplus
102 }
103 #endif
104 
105 #endif	/* _PKGSTRCT_H */
106