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