|
|
1.1 ! root 1: /* lfile.h */ ! 2: ! 3: /* Local disk layout: disk block 0 is directory, then index area, and */ ! 4: /* then data blocks. Each disk block (512 bytes) in the index area */ ! 5: /* contains 8 iblocks, which are 64 bytes long. Iblocks are referenced */ ! 6: /* relative to 0, so the disk block address of iblock k is given by */ ! 7: /* truncate(k/8)+1. The offset of iblock k within its disk block is */ ! 8: /* given by 64*remainder(k,8). The directory entry points to a linked */ ! 9: /* list of iblocks, and each iblock contains pointers to IBLEN (29) data*/ ! 10: /* blocks. Index pointers contain a valid data block address or DBNULL. */ ! 11: ! 12: #include <iblock.h> ! 13: #include <file.h> ! 14: ! 15: struct flblk { /* file "device" control block */ ! 16: int fl_id; /* file's "device id" in devtab */ ! 17: int fl_dev; /* file is on this disk device */ ! 18: int fl_pid; /* process id accessing the file*/ ! 19: struct fdes *fl_dent; /* file's in-core dir. entry */ ! 20: int fl_mode; /* FLREAD, FLWRITE, or both */ ! 21: IBADDR fl_iba; /* address of iblock in fl_iblk */ ! 22: struct iblk fl_iblk; /* current iblock for file */ ! 23: int fl_ipnum; /* current iptr in fl_iblk */ ! 24: long fl_pos; /* current file position (bytes)*/ ! 25: Bool fl_dch; /* has fl_buff been changed? */ ! 26: char *fl_bptr; /* ptr to next char in fl_buff */ ! 27: char fl_buff[DBUFSIZ]; /* current data block for file */ ! 28: }; ! 29: ! 30: #ifdef Ndf ! 31: extern struct flblk fltab[]; ! 32: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.