123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #define VOLDESC 16 /* sector number */
- typedef uchar Byte2L[2];
- typedef uchar Byte2M[2];
- typedef uchar Byte4LM[4];
- typedef uchar Byte4L[4];
- typedef uchar Byte4M[4];
- typedef uchar Byte8LM[8];
- typedef union Drec Drec;
- typedef union Voldesc Voldesc;
- enum
- {
- Boot = 0,
- Primary = 1,
- Supplementary = 2,
- Partition = 3,
- Terminator = 255
- };
- union Voldesc
- { /* volume descriptor */
- uchar byte[Sectorsize];
- union { /* for CD001, the ECMA standard */
- struct
- {
- uchar type;
- uchar stdid[5];
- uchar version;
- uchar unused;
- uchar sysid[32];
- uchar bootid[32];
- uchar data[1977];
- } boot;
- struct
- {
- uchar type;
- uchar stdid[5];
- uchar version;
- uchar flags;
- uchar sysid[32];
- uchar volid[32];
- Byte8LM partloc;
- Byte8LM size;
- uchar escapes[32];
- Byte4LM vsetsize;
- Byte4LM vseqno;
- Byte4LM blksize;
- Byte8LM ptabsize;
- Byte4L lptable;
- Byte4L optlptable;
- Byte4M mptable;
- Byte4M optmptable;
- uchar rootdir[34];
- uchar volsetid[128];
- uchar pubid[128];
- uchar prepid[128];
- uchar appid[128];
- uchar copyright[37];
- uchar abstract[37];
- uchar bibliography[37];
- uchar cdate[17];
- uchar mdate[17];
- uchar expdate[17];
- uchar effdate[17];
- uchar fsversion;
- uchar unused3[1];
- uchar appuse[512];
- uchar unused4[653];
- } desc;
- } z;
- union
- { /* for CDROM, the `High Sierra' standard */
- struct
- {
- Byte8LM number;
- uchar type;
- uchar stdid[5];
- uchar version;
- uchar flags;
- uchar sysid[32];
- uchar volid[32];
- Byte8LM partloc;
- Byte8LM size;
- uchar escapes[32];
- Byte4LM vsetsize;
- Byte4LM vseqno;
- Byte4LM blksize;
- uchar quux[40];
- uchar rootdir[34];
- uchar volsetid[128];
- uchar pubid[128];
- uchar prepid[128];
- uchar appid[128];
- uchar copyright[32];
- uchar abstract[32];
- uchar cdate[16];
- uchar mdate[16];
- uchar expdate[16];
- uchar effdate[16];
- uchar fsversion;
- } desc;
- } r;
- };
- union Drec
- {
- struct
- {
- uchar reclen;
- uchar attrlen;
- Byte8LM addr;
- Byte8LM size;
- uchar date[6];
- uchar tzone; /* flags in high sierra */
- uchar flags; /* ? in high sierra */
- uchar unitsize; /* ? in high sierra */
- uchar gapsize; /* ? in high sierra */
- Byte4LM vseqno; /* ? in high sierra */
- uchar namelen;
- uchar name[1];
- };
- struct
- {
- uchar r_pad[24];
- uchar r_flags;
- };
- };
- struct Isofile
- {
- short fmt; /* 'z' if iso, 'r' if high sierra */
- short blksize;
- long offset; /* true offset when reading directory */
- long odelta; /* true size of directory just read */
- long doffset; /* plan9 offset when reading directory */
- Drec d;
- };
|