9660srv: import from Plan 9
This commit is contained in:
parent
29e9b5683e
commit
78a779a383
9 changed files with 2135 additions and 0 deletions
142
src/cmd/9660srv/iso9660.h
Normal file
142
src/cmd/9660srv/iso9660.h
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
#define VOLDESC 16 /* sector number */
|
||||
|
||||
/*
|
||||
* L means little-endian, M means big-endian, and LM means little-endian
|
||||
* then again big-endian.
|
||||
*/
|
||||
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;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue