#ifndef boot_fs_h #define boot_fs_h #include #include struct bootfs { int fs_type; int blocksize; int (*mount)(long dev, long partition_start, long quiet); int (*open)(const char *filename); int (*bread)(int fd, long blkno, long nblks, char *buf); void (*close)(int fd); /* You'll probably want to use this like: while ((ent = fs->readdir(fd, !rewind++))); so that it rewinds only on the first access. Also don't mix it with other I/O or you will die horribly */ const char * (*readdir)(int fd, int rewind); int (*fstat)(int fd, struct stat* buf); } ext2fs; #endif /* boot_fs_h */