xref: /csrg-svn/sys/isofs/cd9660/cd9660_rrip.h (revision 68045)
165789Smckusick /*-
265789Smckusick  * Copyright (c) 1993, 1994
365789Smckusick  *	The Regents of the University of California.  All rights reserved.
465789Smckusick  *
565789Smckusick  * This code is derived from software contributed to Berkeley
665789Smckusick  * by Pace Willisson (pace@blitz.com).  The Rock Ridge Extension
765789Smckusick  * Support code is derived from software contributed to Berkeley
865789Smckusick  * by Atsushi Murai (amurai@spec.co.jp).
965789Smckusick  *
1065789Smckusick  * %sccs.include.redist.c%
1165789Smckusick  *
12*68045Smckusick  *	@(#)cd9660_rrip.h	8.2 (Berkeley) 12/05/94
1365789Smckusick  */
1465789Smckusick 
1565789Smckusick typedef struct {
16*68045Smckusick 	char   type			[ISODCL (  0,    1)];
17*68045Smckusick 	u_char length			[ISODCL (  2,    2)]; /* 711 */
18*68045Smckusick 	u_char version			[ISODCL (  3,    3)];
1965789Smckusick } ISO_SUSP_HEADER;
2065789Smckusick 
2165789Smckusick typedef struct {
2265789Smckusick 	ISO_SUSP_HEADER			h;
23*68045Smckusick 	char mode			[ISODCL (  4,   11)]; /* 733 */
24*68045Smckusick 	char links			[ISODCL ( 12,   19)]; /* 733 */
25*68045Smckusick 	char uid			[ISODCL ( 20,   27)]; /* 733 */
26*68045Smckusick 	char gid			[ISODCL ( 28,   35)]; /* 733 */
2765789Smckusick } ISO_RRIP_ATTR;
2865789Smckusick 
2965789Smckusick typedef struct {
3065789Smckusick 	ISO_SUSP_HEADER			h;
31*68045Smckusick 	char dev_t_high			[ISODCL (  4,   11)]; /* 733 */
32*68045Smckusick 	char dev_t_low			[ISODCL ( 12,   19)]; /* 733 */
3365789Smckusick } ISO_RRIP_DEVICE;
3465789Smckusick 
3565789Smckusick #define	ISO_SUSP_CFLAG_CONTINUE	0x01
3665789Smckusick #define	ISO_SUSP_CFLAG_CURRENT	0x02
3765789Smckusick #define	ISO_SUSP_CFLAG_PARENT	0x04
3865789Smckusick #define	ISO_SUSP_CFLAG_ROOT	0x08
3965789Smckusick #define	ISO_SUSP_CFLAG_VOLROOT	0x10
4065789Smckusick #define	ISO_SUSP_CFLAG_HOST	0x20
4165789Smckusick 
4265789Smckusick typedef struct {
4365789Smckusick 	u_char cflag			[ISODCL (  1,    1)];
4465789Smckusick 	u_char clen			[ISODCL (  2,    2)];
45*68045Smckusick 	u_char name			[1];			/* XXX */
4665789Smckusick } ISO_RRIP_SLINK_COMPONENT;
4765789Smckusick #define	ISO_RRIP_SLSIZ	2
4865789Smckusick 
4965789Smckusick typedef struct {
5065789Smckusick 	ISO_SUSP_HEADER			h;
5165789Smckusick 	u_char flags			[ISODCL (  4,    4)];
5265789Smckusick 	u_char component		[ISODCL (  5,    5)];
5365789Smckusick } ISO_RRIP_SLINK;
5465789Smckusick 
5565789Smckusick typedef struct {
5665789Smckusick 	ISO_SUSP_HEADER			h;
5765789Smckusick 	char flags			[ISODCL (  4,    4)];
5865789Smckusick } ISO_RRIP_ALTNAME;
5965789Smckusick 
6065789Smckusick typedef struct {
6165789Smckusick 	ISO_SUSP_HEADER			h;
6265789Smckusick 	char dir_loc			[ISODCL (  4,    11)]; /* 733 */
6365789Smckusick } ISO_RRIP_CLINK;
6465789Smckusick 
6565789Smckusick typedef struct {
6665789Smckusick 	ISO_SUSP_HEADER			h;
6765789Smckusick 	char dir_loc			[ISODCL (  4,    11)]; /* 733 */
6865789Smckusick } ISO_RRIP_PLINK;
6965789Smckusick 
7065789Smckusick typedef struct {
7165789Smckusick 	ISO_SUSP_HEADER			h;
7265789Smckusick } ISO_RRIP_RELDIR;
7365789Smckusick 
7465789Smckusick #define	ISO_SUSP_TSTAMP_FORM17	0x80
7565789Smckusick #define	ISO_SUSP_TSTAMP_FORM7	0x00
7665789Smckusick #define	ISO_SUSP_TSTAMP_CREAT	0x01
7765789Smckusick #define	ISO_SUSP_TSTAMP_MODIFY	0x02
7865789Smckusick #define	ISO_SUSP_TSTAMP_ACCESS	0x04
7965789Smckusick #define	ISO_SUSP_TSTAMP_ATTR	0x08
8065789Smckusick #define	ISO_SUSP_TSTAMP_BACKUP	0x10
8165789Smckusick #define	ISO_SUSP_TSTAMP_EXPIRE	0x20
8265789Smckusick #define	ISO_SUSP_TSTAMP_EFFECT	0x40
8365789Smckusick 
8465789Smckusick typedef struct {
8565789Smckusick 	ISO_SUSP_HEADER			h;
86*68045Smckusick 	u_char flags			[ISODCL (  4,    4)];
87*68045Smckusick 	u_char time			[ISODCL (  5,    5)];
8865789Smckusick } ISO_RRIP_TSTAMP;
8965789Smckusick 
9065789Smckusick typedef struct {
9165789Smckusick 	ISO_SUSP_HEADER			h;
92*68045Smckusick 	u_char flags			[ISODCL (  4,    4)];
9365789Smckusick } ISO_RRIP_IDFLAG;
9465789Smckusick 
9565789Smckusick typedef struct {
9665789Smckusick 	ISO_SUSP_HEADER			h;
9765789Smckusick 	char len_id			[ISODCL (  4,    4)];
9865789Smckusick 	char len_des			[ISODCL (  5,	 5)];
9965789Smckusick 	char len_src			[ISODCL (  6,	 6)];
10065789Smckusick 	char version			[ISODCL (  7,	 7)];
10165789Smckusick } ISO_RRIP_EXTREF;
10265789Smckusick 
10365789Smckusick typedef struct {
10465789Smckusick 	ISO_SUSP_HEADER			h;
10565789Smckusick 	char check			[ISODCL (  4,	 5)];
10665789Smckusick 	char skip			[ISODCL (  6,	 6)];
10765789Smckusick } ISO_RRIP_OFFSET;
10865789Smckusick 
10965789Smckusick typedef struct {
11065789Smckusick 	ISO_SUSP_HEADER			h;
11165789Smckusick 	char location			[ISODCL (  4,	11)];
11265789Smckusick 	char offset			[ISODCL ( 12,	19)];
11365789Smckusick 	char length			[ISODCL ( 20,	27)];
11465789Smckusick } ISO_RRIP_CONT;
115