1*da917039SDavid du Colombier struct File{ 2*da917039SDavid du Colombier int walked; 3*da917039SDavid du Colombier Fs *fs; 4*da917039SDavid du Colombier char *path; 5*da917039SDavid du Colombier }; 6*da917039SDavid du Colombier 7*da917039SDavid du Colombier struct Fs{ 8*da917039SDavid du Colombier int dev; /* device id */ 9*da917039SDavid du Colombier long (*diskread)(Fs*, void*, long); /* disk read routine */ 10*da917039SDavid du Colombier vlong (*diskseek)(Fs*, vlong); /* disk seek routine */ 11*da917039SDavid du Colombier long (*read)(File*, void*, long); 12*da917039SDavid du Colombier int (*walk)(File*, char*); 13*da917039SDavid du Colombier File root; 14*da917039SDavid du Colombier }; 15*da917039SDavid du Colombier 16*da917039SDavid du Colombier extern int chatty; 17*da917039SDavid du Colombier extern int dotini(Fs*); 18*da917039SDavid du Colombier extern int fswalk(Fs*, char*, File*); 19*da917039SDavid du Colombier extern int fsread(File*, void*, long); 20*da917039SDavid du Colombier extern int fsboot(Fs*, char*, Boot*); 21*da917039SDavid du Colombier 22*da917039SDavid du Colombier #define BADPTR(x) (0 && (ulong)x < 0x80000000) 23