typedef struct File File; typedef struct Fs Fs; #include "dosfs.h" #include "kfs.h" struct File{ union{ Dosfile dos; Kfsfile kfs; int walked; }; Fs *fs; char *path; }; struct Fs{ union { Dos dos; Kfs kfs; }; int dev; /* device id */ long (*diskread)(Fs*, void*, long); /* disk read routine */ vlong (*diskseek)(Fs*, vlong); /* disk seek routine */ long (*read)(File*, void*, long); int (*walk)(File*, char*); File root; }; extern int chatty; extern int dotini(Fs*, char*, char*); extern int fswalk(Fs*, char*, File*); extern int fsread(File*, void*, long); extern int fsboot(Fs*, char*, Boot*); #define BADPTR(x) ((ulong)x < 0x80000000)