2e85e32886
data on the disk is layed out sequentially and directory information is at the end of the disk. we want to keep data and metadata separated so that reading large sequential files will not evict the directory information from the cache causing long seeks. for that, we tag the clusters (an 8th for metadata, and the rest for data) and getbuf() will only evict clusters of the same tag.
18 lines
436 B
C
18 lines
436 B
C
void chat(char*, ...);
|
|
void* ealloc(long);
|
|
void error(char*);
|
|
Iobuf* getbuf(Xdata*, ulong, ulong);
|
|
Xdata* getxdata(char*);
|
|
void iobuf_init(void);
|
|
void nexterror(void);
|
|
void panic(int, char*, ...);
|
|
void purgebuf(Xdata*);
|
|
void putbuf(Iobuf*);
|
|
void refxfs(Xfs*, int);
|
|
void showdir(int, Dir*);
|
|
Xfile* xfile(int, int);
|
|
void setnames(Dir*, char*);
|
|
|
|
#define waserror() (++nerr_lab, setjmp(err_lab[nerr_lab-1]))
|
|
#define poperror() (--nerr_lab)
|