12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #ifndef _SFS_H_
- #define _SFS_H_
- #include <fs.h>
- #include <vnode.h>
- #include <kern/sfs.h>
- struct sfs_vnode {
- struct vnode sv_v;
- struct sfs_inode sv_i;
- uint32_t sv_ino;
- bool sv_dirty;
- };
- struct sfs_fs {
- struct fs sfs_absfs;
- struct sfs_super sfs_super;
- bool sfs_superdirty;
- struct device *sfs_device;
- struct vnodearray *sfs_vnodes;
- struct bitmap *sfs_freemap;
- bool sfs_freemapdirty;
- };
- int sfs_mount(const char *device);
- #define SFSUIO(iov, uio, ptr, block, rw) \
- uio_kinit(iov, uio, ptr, SFS_BLOCKSIZE, ((off_t)(block))*SFS_BLOCKSIZE, rw)
- int sfs_rwblock(struct sfs_fs *sfs, struct uio *uio);
- int sfs_rblock(struct sfs_fs *sfs, void *data, uint32_t block);
- int sfs_wblock(struct sfs_fs *sfs, void *data, uint32_t block);
- struct vnode *sfs_getroot(struct fs *fs);
- #endif
|