Blame


1 78a779a3 2008-07-20 rsc #define VOLDESC 16 /* sector number */
2 78a779a3 2008-07-20 rsc
3 78a779a3 2008-07-20 rsc /*
4 78a779a3 2008-07-20 rsc * L means little-endian, M means big-endian, and LM means little-endian
5 78a779a3 2008-07-20 rsc * then again big-endian.
6 78a779a3 2008-07-20 rsc */
7 78a779a3 2008-07-20 rsc typedef uchar Byte2L[2];
8 78a779a3 2008-07-20 rsc typedef uchar Byte2M[2];
9 78a779a3 2008-07-20 rsc typedef uchar Byte4LM[4];
10 78a779a3 2008-07-20 rsc typedef uchar Byte4L[4];
11 78a779a3 2008-07-20 rsc typedef uchar Byte4M[4];
12 78a779a3 2008-07-20 rsc typedef uchar Byte8LM[8];
13 78a779a3 2008-07-20 rsc typedef union Drec Drec;
14 78a779a3 2008-07-20 rsc typedef union Voldesc Voldesc;
15 78a779a3 2008-07-20 rsc
16 78a779a3 2008-07-20 rsc enum
17 78a779a3 2008-07-20 rsc {
18 78a779a3 2008-07-20 rsc Boot = 0,
19 78a779a3 2008-07-20 rsc Primary = 1,
20 78a779a3 2008-07-20 rsc Supplementary = 2,
21 78a779a3 2008-07-20 rsc Partition = 3,
22 78a779a3 2008-07-20 rsc Terminator = 255
23 78a779a3 2008-07-20 rsc };
24 78a779a3 2008-07-20 rsc
25 78a779a3 2008-07-20 rsc union Voldesc
26 78a779a3 2008-07-20 rsc { /* volume descriptor */
27 78a779a3 2008-07-20 rsc uchar byte[Sectorsize];
28 78a779a3 2008-07-20 rsc union { /* for CD001, the ECMA standard */
29 78a779a3 2008-07-20 rsc struct
30 78a779a3 2008-07-20 rsc {
31 78a779a3 2008-07-20 rsc uchar type;
32 78a779a3 2008-07-20 rsc uchar stdid[5];
33 78a779a3 2008-07-20 rsc uchar version;
34 78a779a3 2008-07-20 rsc uchar unused;
35 78a779a3 2008-07-20 rsc uchar sysid[32];
36 78a779a3 2008-07-20 rsc uchar bootid[32];
37 78a779a3 2008-07-20 rsc uchar data[1977];
38 78a779a3 2008-07-20 rsc } boot;
39 78a779a3 2008-07-20 rsc struct
40 78a779a3 2008-07-20 rsc {
41 78a779a3 2008-07-20 rsc uchar type;
42 78a779a3 2008-07-20 rsc uchar stdid[5];
43 78a779a3 2008-07-20 rsc uchar version;
44 78a779a3 2008-07-20 rsc uchar flags;
45 78a779a3 2008-07-20 rsc uchar sysid[32];
46 78a779a3 2008-07-20 rsc uchar volid[32];
47 78a779a3 2008-07-20 rsc Byte8LM partloc;
48 78a779a3 2008-07-20 rsc Byte8LM size;
49 78a779a3 2008-07-20 rsc uchar escapes[32];
50 78a779a3 2008-07-20 rsc Byte4LM vsetsize;
51 78a779a3 2008-07-20 rsc Byte4LM vseqno;
52 78a779a3 2008-07-20 rsc Byte4LM blksize;
53 78a779a3 2008-07-20 rsc Byte8LM ptabsize;
54 78a779a3 2008-07-20 rsc Byte4L lptable;
55 78a779a3 2008-07-20 rsc Byte4L optlptable;
56 78a779a3 2008-07-20 rsc Byte4M mptable;
57 78a779a3 2008-07-20 rsc Byte4M optmptable;
58 78a779a3 2008-07-20 rsc uchar rootdir[34];
59 78a779a3 2008-07-20 rsc uchar volsetid[128];
60 78a779a3 2008-07-20 rsc uchar pubid[128];
61 78a779a3 2008-07-20 rsc uchar prepid[128];
62 78a779a3 2008-07-20 rsc uchar appid[128];
63 78a779a3 2008-07-20 rsc uchar copyright[37];
64 78a779a3 2008-07-20 rsc uchar abstract[37];
65 78a779a3 2008-07-20 rsc uchar bibliography[37];
66 78a779a3 2008-07-20 rsc uchar cdate[17];
67 78a779a3 2008-07-20 rsc uchar mdate[17];
68 78a779a3 2008-07-20 rsc uchar expdate[17];
69 78a779a3 2008-07-20 rsc uchar effdate[17];
70 78a779a3 2008-07-20 rsc uchar fsversion;
71 78a779a3 2008-07-20 rsc uchar unused3[1];
72 78a779a3 2008-07-20 rsc uchar appuse[512];
73 78a779a3 2008-07-20 rsc uchar unused4[653];
74 78a779a3 2008-07-20 rsc } desc;
75 78a779a3 2008-07-20 rsc } z;
76 78a779a3 2008-07-20 rsc union
77 78a779a3 2008-07-20 rsc { /* for CDROM, the `High Sierra' standard */
78 78a779a3 2008-07-20 rsc struct
79 78a779a3 2008-07-20 rsc {
80 78a779a3 2008-07-20 rsc Byte8LM number;
81 78a779a3 2008-07-20 rsc uchar type;
82 78a779a3 2008-07-20 rsc uchar stdid[5];
83 78a779a3 2008-07-20 rsc uchar version;
84 78a779a3 2008-07-20 rsc uchar flags;
85 78a779a3 2008-07-20 rsc uchar sysid[32];
86 78a779a3 2008-07-20 rsc uchar volid[32];
87 78a779a3 2008-07-20 rsc Byte8LM partloc;
88 78a779a3 2008-07-20 rsc Byte8LM size;
89 78a779a3 2008-07-20 rsc uchar escapes[32];
90 78a779a3 2008-07-20 rsc Byte4LM vsetsize;
91 78a779a3 2008-07-20 rsc Byte4LM vseqno;
92 78a779a3 2008-07-20 rsc Byte4LM blksize;
93 78a779a3 2008-07-20 rsc uchar quux[40];
94 78a779a3 2008-07-20 rsc uchar rootdir[34];
95 78a779a3 2008-07-20 rsc uchar volsetid[128];
96 78a779a3 2008-07-20 rsc uchar pubid[128];
97 78a779a3 2008-07-20 rsc uchar prepid[128];
98 78a779a3 2008-07-20 rsc uchar appid[128];
99 78a779a3 2008-07-20 rsc uchar copyright[32];
100 78a779a3 2008-07-20 rsc uchar abstract[32];
101 78a779a3 2008-07-20 rsc uchar cdate[16];
102 78a779a3 2008-07-20 rsc uchar mdate[16];
103 78a779a3 2008-07-20 rsc uchar expdate[16];
104 78a779a3 2008-07-20 rsc uchar effdate[16];
105 78a779a3 2008-07-20 rsc uchar fsversion;
106 78a779a3 2008-07-20 rsc } desc;
107 78a779a3 2008-07-20 rsc } r;
108 78a779a3 2008-07-20 rsc };
109 78a779a3 2008-07-20 rsc
110 78a779a3 2008-07-20 rsc union Drec
111 78a779a3 2008-07-20 rsc {
112 78a779a3 2008-07-20 rsc struct
113 78a779a3 2008-07-20 rsc {
114 78a779a3 2008-07-20 rsc uchar reclen;
115 78a779a3 2008-07-20 rsc uchar attrlen;
116 78a779a3 2008-07-20 rsc Byte8LM addr;
117 78a779a3 2008-07-20 rsc Byte8LM size;
118 78a779a3 2008-07-20 rsc uchar date[6];
119 78a779a3 2008-07-20 rsc uchar tzone; /* flags in high sierra */
120 78a779a3 2008-07-20 rsc uchar flags; /* ? in high sierra */
121 78a779a3 2008-07-20 rsc uchar unitsize; /* ? in high sierra */
122 78a779a3 2008-07-20 rsc uchar gapsize; /* ? in high sierra */
123 78a779a3 2008-07-20 rsc Byte4LM vseqno; /* ? in high sierra */
124 78a779a3 2008-07-20 rsc uchar namelen;
125 78a779a3 2008-07-20 rsc uchar name[1];
126 13c28c2c 2008-12-02 trisk } z;
127 78a779a3 2008-07-20 rsc struct
128 78a779a3 2008-07-20 rsc {
129 13c28c2c 2008-12-02 trisk uchar pad[24];
130 13c28c2c 2008-12-02 trisk uchar flags;
131 13c28c2c 2008-12-02 trisk } r;
132 78a779a3 2008-07-20 rsc };
133 78a779a3 2008-07-20 rsc
134 78a779a3 2008-07-20 rsc struct Isofile
135 78a779a3 2008-07-20 rsc {
136 78a779a3 2008-07-20 rsc short fmt; /* 'z' if iso, 'r' if high sierra */
137 78a779a3 2008-07-20 rsc short blksize;
138 78a779a3 2008-07-20 rsc long offset; /* true offset when reading directory */
139 78a779a3 2008-07-20 rsc long odelta; /* true size of directory just read */
140 78a779a3 2008-07-20 rsc long doffset; /* plan9 offset when reading directory */
141 78a779a3 2008-07-20 rsc Drec d;
142 78a779a3 2008-07-20 rsc };