xref: /csrg-svn/sys/isofs/cd9660/cd9660_rrip.h (revision 65789)
1*65789Smckusick /*-
2*65789Smckusick  * Copyright (c) 1993, 1994
3*65789Smckusick  *	The Regents of the University of California.  All rights reserved.
4*65789Smckusick  *
5*65789Smckusick  * This code is derived from software contributed to Berkeley
6*65789Smckusick  * by Pace Willisson (pace@blitz.com).  The Rock Ridge Extension
7*65789Smckusick  * Support code is derived from software contributed to Berkeley
8*65789Smckusick  * by Atsushi Murai (amurai@spec.co.jp).
9*65789Smckusick  *
10*65789Smckusick  * %sccs.include.redist.c%
11*65789Smckusick  *
12*65789Smckusick  *	@(#)cd9660_rrip.h	8.1 (Berkeley) 01/21/94
13*65789Smckusick  */
14*65789Smckusick 
15*65789Smckusick typedef struct {
16*65789Smckusick 	char 	      type		[ISODCL (  0,    1)];
17*65789Smckusick 	unsigned char length		[ISODCL (  2,    2)]; /* 711 */
18*65789Smckusick 	unsigned char version		[ISODCL (  3,    3)];
19*65789Smckusick } ISO_SUSP_HEADER;
20*65789Smckusick 
21*65789Smckusick typedef struct {
22*65789Smckusick 	ISO_SUSP_HEADER			h;
23*65789Smckusick 	char mode_l			[ISODCL (  4,    7)]; /* 731 */
24*65789Smckusick 	char mode_m			[ISODCL (  8,   11)]; /* 732 */
25*65789Smckusick 	char links_l			[ISODCL ( 12,   15)]; /* 731 */
26*65789Smckusick 	char links_m			[ISODCL ( 16,   19)]; /* 732 */
27*65789Smckusick 	char uid_l			[ISODCL ( 20,   23)]; /* 731 */
28*65789Smckusick 	char uid_m			[ISODCL ( 24,   27)]; /* 732 */
29*65789Smckusick 	char gid_l			[ISODCL ( 28,   31)]; /* 731 */
30*65789Smckusick 	char gid_m			[ISODCL ( 32,   35)]; /* 732 */
31*65789Smckusick } ISO_RRIP_ATTR;
32*65789Smckusick 
33*65789Smckusick typedef struct {
34*65789Smckusick 	ISO_SUSP_HEADER			h;
35*65789Smckusick 	char dev_t_high_l		[ISODCL (  4,    7)]; /* 731 */
36*65789Smckusick 	char dev_t_high_m		[ISODCL (  8,   11)]; /* 732 */
37*65789Smckusick 	char dev_t_low_l		[ISODCL ( 12,   15)]; /* 731 */
38*65789Smckusick 	char dev_t_low_m		[ISODCL ( 16,   19)]; /* 732 */
39*65789Smckusick } ISO_RRIP_DEVICE;
40*65789Smckusick 
41*65789Smckusick #define	ISO_SUSP_CFLAG_CONTINUE	0x01
42*65789Smckusick #define	ISO_SUSP_CFLAG_CURRENT	0x02
43*65789Smckusick #define	ISO_SUSP_CFLAG_PARENT	0x04
44*65789Smckusick #define	ISO_SUSP_CFLAG_ROOT	0x08
45*65789Smckusick #define	ISO_SUSP_CFLAG_VOLROOT	0x10
46*65789Smckusick #define	ISO_SUSP_CFLAG_HOST	0x20
47*65789Smckusick 
48*65789Smckusick typedef struct {
49*65789Smckusick 	u_char cflag			[ISODCL (  1,    1)];
50*65789Smckusick 	u_char clen			[ISODCL (  2,    2)];
51*65789Smckusick 	u_char name			[0];
52*65789Smckusick } ISO_RRIP_SLINK_COMPONENT;
53*65789Smckusick #define	ISO_RRIP_SLSIZ	2
54*65789Smckusick 
55*65789Smckusick typedef struct {
56*65789Smckusick 	ISO_SUSP_HEADER			h;
57*65789Smckusick 	u_char flags			[ISODCL (  4,    4)];
58*65789Smckusick 	u_char component		[ISODCL (  5,    5)];
59*65789Smckusick } ISO_RRIP_SLINK;
60*65789Smckusick 
61*65789Smckusick typedef struct {
62*65789Smckusick 	ISO_SUSP_HEADER			h;
63*65789Smckusick 	char flags			[ISODCL (  4,    4)];
64*65789Smckusick } ISO_RRIP_ALTNAME;
65*65789Smckusick 
66*65789Smckusick typedef struct {
67*65789Smckusick 	ISO_SUSP_HEADER			h;
68*65789Smckusick 	char dir_loc			[ISODCL (  4,    11)]; /* 733 */
69*65789Smckusick } ISO_RRIP_CLINK;
70*65789Smckusick 
71*65789Smckusick typedef struct {
72*65789Smckusick 	ISO_SUSP_HEADER			h;
73*65789Smckusick 	char dir_loc			[ISODCL (  4,    11)]; /* 733 */
74*65789Smckusick } ISO_RRIP_PLINK;
75*65789Smckusick 
76*65789Smckusick typedef struct {
77*65789Smckusick 	ISO_SUSP_HEADER			h;
78*65789Smckusick } ISO_RRIP_RELDIR;
79*65789Smckusick 
80*65789Smckusick #define	ISO_SUSP_TSTAMP_FORM17	0x80
81*65789Smckusick #define	ISO_SUSP_TSTAMP_FORM7	0x00
82*65789Smckusick #define	ISO_SUSP_TSTAMP_CREAT	0x01
83*65789Smckusick #define	ISO_SUSP_TSTAMP_MODIFY	0x02
84*65789Smckusick #define	ISO_SUSP_TSTAMP_ACCESS	0x04
85*65789Smckusick #define	ISO_SUSP_TSTAMP_ATTR	0x08
86*65789Smckusick #define	ISO_SUSP_TSTAMP_BACKUP	0x10
87*65789Smckusick #define	ISO_SUSP_TSTAMP_EXPIRE	0x20
88*65789Smckusick #define	ISO_SUSP_TSTAMP_EFFECT	0x40
89*65789Smckusick 
90*65789Smckusick typedef struct {
91*65789Smckusick 	ISO_SUSP_HEADER			h;
92*65789Smckusick 	unsigned char flags		[ISODCL (  4,    4)];
93*65789Smckusick 	unsigned char time		[ISODCL (  5,    5)];
94*65789Smckusick } ISO_RRIP_TSTAMP;
95*65789Smckusick 
96*65789Smckusick typedef struct {
97*65789Smckusick 	ISO_SUSP_HEADER			h;
98*65789Smckusick 	unsigned char flags		[ISODCL (  4,    4)];
99*65789Smckusick } ISO_RRIP_IDFLAG;
100*65789Smckusick 
101*65789Smckusick typedef struct {
102*65789Smckusick 	ISO_SUSP_HEADER			h;
103*65789Smckusick 	char len_id			[ISODCL (  4,    4)];
104*65789Smckusick 	char len_des			[ISODCL (  5,	 5)];
105*65789Smckusick 	char len_src			[ISODCL (  6,	 6)];
106*65789Smckusick 	char version			[ISODCL (  7,	 7)];
107*65789Smckusick } ISO_RRIP_EXTREF;
108*65789Smckusick 
109*65789Smckusick typedef struct {
110*65789Smckusick 	ISO_SUSP_HEADER			h;
111*65789Smckusick 	char check			[ISODCL (  4,	 5)];
112*65789Smckusick 	char skip			[ISODCL (  6,	 6)];
113*65789Smckusick } ISO_RRIP_OFFSET;
114*65789Smckusick 
115*65789Smckusick typedef struct {
116*65789Smckusick 	ISO_SUSP_HEADER			h;
117*65789Smckusick 	char location			[ISODCL (  4,	11)];
118*65789Smckusick 	char offset			[ISODCL ( 12,	19)];
119*65789Smckusick 	char length			[ISODCL ( 20,	27)];
120*65789Smckusick } ISO_RRIP_CONT;
121