cd9660_rrip.h revision 1541
1/*-
2 * Copyright (c) 1993, 1994
3 *	The Regents of the University of California.  All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley
6 * by Pace Willisson (pace@blitz.com).  The Rock Ridge Extension
7 * Support code is derived from software contributed to Berkeley
8 * by Atsushi Murai (amurai@spec.co.jp).
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 *    notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 *    notice, this list of conditions and the following disclaimer in the
17 *    documentation and/or other materials provided with the distribution.
18 * 3. All advertising materials mentioning features or use of this software
19 *    must display the following acknowledgement:
20 *	This product includes software developed by the University of
21 *	California, Berkeley and its contributors.
22 * 4. Neither the name of the University nor the names of its contributors
23 *    may be used to endorse or promote products derived from this software
24 *    without specific prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 *	@(#)cd9660_rrip.h	8.1 (Berkeley) 1/21/94
39 */
40
41typedef struct {
42	char 	      type		[ISODCL (  0,    1)];
43	unsigned char length		[ISODCL (  2,    2)]; /* 711 */
44	unsigned char version		[ISODCL (  3,    3)];
45} ISO_SUSP_HEADER;
46
47typedef struct {
48	ISO_SUSP_HEADER			h;
49	char mode_l			[ISODCL (  4,    7)]; /* 731 */
50	char mode_m			[ISODCL (  8,   11)]; /* 732 */
51	char links_l			[ISODCL ( 12,   15)]; /* 731 */
52	char links_m			[ISODCL ( 16,   19)]; /* 732 */
53	char uid_l			[ISODCL ( 20,   23)]; /* 731 */
54	char uid_m			[ISODCL ( 24,   27)]; /* 732 */
55	char gid_l			[ISODCL ( 28,   31)]; /* 731 */
56	char gid_m			[ISODCL ( 32,   35)]; /* 732 */
57} ISO_RRIP_ATTR;
58
59typedef struct {
60	ISO_SUSP_HEADER			h;
61	char dev_t_high_l		[ISODCL (  4,    7)]; /* 731 */
62	char dev_t_high_m		[ISODCL (  8,   11)]; /* 732 */
63	char dev_t_low_l		[ISODCL ( 12,   15)]; /* 731 */
64	char dev_t_low_m		[ISODCL ( 16,   19)]; /* 732 */
65} ISO_RRIP_DEVICE;
66
67#define	ISO_SUSP_CFLAG_CONTINUE	0x01
68#define	ISO_SUSP_CFLAG_CURRENT	0x02
69#define	ISO_SUSP_CFLAG_PARENT	0x04
70#define	ISO_SUSP_CFLAG_ROOT	0x08
71#define	ISO_SUSP_CFLAG_VOLROOT	0x10
72#define	ISO_SUSP_CFLAG_HOST	0x20
73
74typedef struct {
75	u_char cflag			[ISODCL (  1,    1)];
76	u_char clen			[ISODCL (  2,    2)];
77	u_char name			[0];
78} ISO_RRIP_SLINK_COMPONENT;
79#define	ISO_RRIP_SLSIZ	2
80
81typedef struct {
82	ISO_SUSP_HEADER			h;
83	u_char flags			[ISODCL (  4,    4)];
84	u_char component		[ISODCL (  5,    5)];
85} ISO_RRIP_SLINK;
86
87typedef struct {
88	ISO_SUSP_HEADER			h;
89	char flags			[ISODCL (  4,    4)];
90} ISO_RRIP_ALTNAME;
91
92typedef struct {
93	ISO_SUSP_HEADER			h;
94	char dir_loc			[ISODCL (  4,    11)]; /* 733 */
95} ISO_RRIP_CLINK;
96
97typedef struct {
98	ISO_SUSP_HEADER			h;
99	char dir_loc			[ISODCL (  4,    11)]; /* 733 */
100} ISO_RRIP_PLINK;
101
102typedef struct {
103	ISO_SUSP_HEADER			h;
104} ISO_RRIP_RELDIR;
105
106#define	ISO_SUSP_TSTAMP_FORM17	0x80
107#define	ISO_SUSP_TSTAMP_FORM7	0x00
108#define	ISO_SUSP_TSTAMP_CREAT	0x01
109#define	ISO_SUSP_TSTAMP_MODIFY	0x02
110#define	ISO_SUSP_TSTAMP_ACCESS	0x04
111#define	ISO_SUSP_TSTAMP_ATTR	0x08
112#define	ISO_SUSP_TSTAMP_BACKUP	0x10
113#define	ISO_SUSP_TSTAMP_EXPIRE	0x20
114#define	ISO_SUSP_TSTAMP_EFFECT	0x40
115
116typedef struct {
117	ISO_SUSP_HEADER			h;
118	unsigned char flags		[ISODCL (  4,    4)];
119	unsigned char time		[ISODCL (  5,    5)];
120} ISO_RRIP_TSTAMP;
121
122typedef struct {
123	ISO_SUSP_HEADER			h;
124	unsigned char flags		[ISODCL (  4,    4)];
125} ISO_RRIP_IDFLAG;
126
127typedef struct {
128	ISO_SUSP_HEADER			h;
129	char len_id			[ISODCL (  4,    4)];
130	char len_des			[ISODCL (  5,	 5)];
131	char len_src			[ISODCL (  6,	 6)];
132	char version			[ISODCL (  7,	 7)];
133} ISO_RRIP_EXTREF;
134
135typedef struct {
136	ISO_SUSP_HEADER			h;
137	char check			[ISODCL (  4,	 5)];
138	char skip			[ISODCL (  6,	 6)];
139} ISO_RRIP_OFFSET;
140
141typedef struct {
142	ISO_SUSP_HEADER			h;
143	char location			[ISODCL (  4,	11)];
144	char offset			[ISODCL ( 12,	19)];
145	char length			[ISODCL ( 20,	27)];
146} ISO_RRIP_CONT;
147