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