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 * %sccs.include.redist.c% 11 * 12 * @(#)cd9660_rrip.h 8.2 (Berkeley) 12/05/94 13 */ 14 15 typedef struct { 16 char type [ISODCL ( 0, 1)]; 17 u_char length [ISODCL ( 2, 2)]; /* 711 */ 18 u_char version [ISODCL ( 3, 3)]; 19 } ISO_SUSP_HEADER; 20 21 typedef struct { 22 ISO_SUSP_HEADER h; 23 char mode [ISODCL ( 4, 11)]; /* 733 */ 24 char links [ISODCL ( 12, 19)]; /* 733 */ 25 char uid [ISODCL ( 20, 27)]; /* 733 */ 26 char gid [ISODCL ( 28, 35)]; /* 733 */ 27 } ISO_RRIP_ATTR; 28 29 typedef struct { 30 ISO_SUSP_HEADER h; 31 char dev_t_high [ISODCL ( 4, 11)]; /* 733 */ 32 char dev_t_low [ISODCL ( 12, 19)]; /* 733 */ 33 } ISO_RRIP_DEVICE; 34 35 #define ISO_SUSP_CFLAG_CONTINUE 0x01 36 #define ISO_SUSP_CFLAG_CURRENT 0x02 37 #define ISO_SUSP_CFLAG_PARENT 0x04 38 #define ISO_SUSP_CFLAG_ROOT 0x08 39 #define ISO_SUSP_CFLAG_VOLROOT 0x10 40 #define ISO_SUSP_CFLAG_HOST 0x20 41 42 typedef struct { 43 u_char cflag [ISODCL ( 1, 1)]; 44 u_char clen [ISODCL ( 2, 2)]; 45 u_char name [1]; /* XXX */ 46 } ISO_RRIP_SLINK_COMPONENT; 47 #define ISO_RRIP_SLSIZ 2 48 49 typedef struct { 50 ISO_SUSP_HEADER h; 51 u_char flags [ISODCL ( 4, 4)]; 52 u_char component [ISODCL ( 5, 5)]; 53 } ISO_RRIP_SLINK; 54 55 typedef struct { 56 ISO_SUSP_HEADER h; 57 char flags [ISODCL ( 4, 4)]; 58 } ISO_RRIP_ALTNAME; 59 60 typedef struct { 61 ISO_SUSP_HEADER h; 62 char dir_loc [ISODCL ( 4, 11)]; /* 733 */ 63 } ISO_RRIP_CLINK; 64 65 typedef struct { 66 ISO_SUSP_HEADER h; 67 char dir_loc [ISODCL ( 4, 11)]; /* 733 */ 68 } ISO_RRIP_PLINK; 69 70 typedef struct { 71 ISO_SUSP_HEADER h; 72 } ISO_RRIP_RELDIR; 73 74 #define ISO_SUSP_TSTAMP_FORM17 0x80 75 #define ISO_SUSP_TSTAMP_FORM7 0x00 76 #define ISO_SUSP_TSTAMP_CREAT 0x01 77 #define ISO_SUSP_TSTAMP_MODIFY 0x02 78 #define ISO_SUSP_TSTAMP_ACCESS 0x04 79 #define ISO_SUSP_TSTAMP_ATTR 0x08 80 #define ISO_SUSP_TSTAMP_BACKUP 0x10 81 #define ISO_SUSP_TSTAMP_EXPIRE 0x20 82 #define ISO_SUSP_TSTAMP_EFFECT 0x40 83 84 typedef struct { 85 ISO_SUSP_HEADER h; 86 u_char flags [ISODCL ( 4, 4)]; 87 u_char time [ISODCL ( 5, 5)]; 88 } ISO_RRIP_TSTAMP; 89 90 typedef struct { 91 ISO_SUSP_HEADER h; 92 u_char flags [ISODCL ( 4, 4)]; 93 } ISO_RRIP_IDFLAG; 94 95 typedef struct { 96 ISO_SUSP_HEADER h; 97 char len_id [ISODCL ( 4, 4)]; 98 char len_des [ISODCL ( 5, 5)]; 99 char len_src [ISODCL ( 6, 6)]; 100 char version [ISODCL ( 7, 7)]; 101 } ISO_RRIP_EXTREF; 102 103 typedef struct { 104 ISO_SUSP_HEADER h; 105 char check [ISODCL ( 4, 5)]; 106 char skip [ISODCL ( 6, 6)]; 107 } ISO_RRIP_OFFSET; 108 109 typedef struct { 110 ISO_SUSP_HEADER h; 111 char location [ISODCL ( 4, 11)]; 112 char offset [ISODCL ( 12, 19)]; 113 char length [ISODCL ( 20, 27)]; 114 } ISO_RRIP_CONT; 115