|
|
1.1 root 1: /* iblock.h - ibtodb, ibdisp */
2:
1.1.1.2 ! root 3: typedef short IBADDR; /* iblocks addressed 0,1,2,... */
1.1 root 4:
5: #define IBLEN 29 /* # d-block ptrs in an i-block */
1.1.1.2 ! root 6: #define IBNULL (IBADDR) -1 /* null pointer in i-block list */
! 7: #define IBAREA 1 /* start of iblocks on disk */
1.1 root 8: #define IBWDIR TRUE /* ibnew: write directory */
9: #define IBNWDIR FALSE /* ibnew: don't write directory */
10:
11: struct iblk { /* index block layout */
12: long ib_byte; /* first data byte indexed by */
13: /* this index block */
14: IBADDR ib_next; /* address of next i-block */
15: DBADDR ib_dba[IBLEN]; /* ptrs to data blocks indexed */
16: };
17:
18: #define ibtodb(ib) (((ib)>>3)+IBAREA)/* iblock to disk block addr. */
19: #define ibdisp(ib) (((ib)&07)*sizeof(struct iblk))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.