123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- * format of cache on disk
- */
- typedef struct Dptr Dptr;
- typedef struct Dahdr Dahdr;
- typedef struct Dalloc Dalloc;
- typedef struct Fphdr Fphdr;
- typedef struct Fptr Fptr;
- typedef struct Inode Inode;
- typedef struct Dihdr Dihdr;
- typedef struct Dinode Dinode;
- enum
- {
- Amagic= 0xbebeefed, /* allocation block magic */
- Imagic= 0xbadc00ce, /* inode block magic */
- BtoUL= 8*sizeof(ulong),/* bits in a ulong */
- KNAMELEN= 28 /* old NAMELEN: BUG */
- };
- #define Indbno 0x80000000 /* indirect block */
- #define Notabno 0xFFFFFFFF /* not a block number */
- /*
- * Allocation blocks at the begining of the disk. There are
- * enough of these blocks to supply 1 bit for each block on the
- * disk;
- */
- struct Dahdr
- {
- ulong magic;
- ulong bsize; /* logical block size */
- char name[KNAMELEN];
- short nab; /* number of allocation blocks */
- };
- struct Dalloc
- {
- Dahdr;
- ulong bits[1];
- };
- /*
- * A pointer to disk data
- */
- struct Dptr
- {
- ulong fbno; /* file block number */
- ulong bno; /* disk block number */
- ushort start; /* offset into block of valid data */
- ushort end; /* offset into block after valid data */
- };
- /*
- * A file descriptor.
- */
- struct Inode
- {
- Qid qid;
- vlong length;
- Dptr ptr; /* pointer page */
- char inuse;
- };
- /*
- * inode blocks (after allocation blocks)
- */
- struct Dihdr
- {
- ulong magic;
- ulong nino; /* number of inodes */
- };
- struct Dinode
- {
- Dihdr;
- Inode inode[1];
- };
|