VFS
| Member Type | Member Name |
|---|---|
uint16_t | mode |
uint64_t | size |
uint64_t | inode |
uint32_t | nlink |
uint64_t | atime |
uint64_t | mtime |
uint64_t | ctime |
uint16_t | present_mask |
| Member Type | Member Name |
|---|---|
char | name[VFS_NAME_MAX] |
uint16_t | mode |
struct vfs_node | *node |
void | *dirent_data |
| Member Type | Member Name |
|---|---|
struct vfs_node | *mount_point |
struct vfs_mount | *mount_mount |
struct vfs_node | *root |
struct vfs_ops | *ops |
char | name[256] |
void | *fs_data |
| Member Type | Member Name |
|---|---|
enum fs_type | fs_type |
uint64_t | open_handles |
uint64_t | unique_id |
uint32_t | flags |
uint16_t | mode |
uint64_t | size |
uint32_t | uid |
uint32_t | gid |
uint64_t | mtime |
uint64_t | atime |
void | *fs_data |
void | *fs_node_data |
struct vfs_mount | *child_mount |
struct vfs_ops | *ops |
| Name | Value |
|---|---|
VFS_NODE_NONE | 0x0000 |
VFS_NODE_MOUNTPOINT | 0x0001 |
VFS_NODE_SYMLINK | 0x0002 |
VFS_NODE_HIDDEN | 0x0004 |
VFS_NODE_DEVICE | 0x0008 |
VFS_NODE_PIPE | 0x0010 |
VFS_NODE_SOCKET | 0x0020 |
VFS_NODE_SYNC | 0x0030 |
VFS_NODE_TEMPORARY | 0x0040 |
VFS_NODE_NOATIME | 0x0080 |
VFS_NODE_APPENDONLY | 0x0100 |
VFS_NODE_IMMUTABLE | 0x0200 |
VFS_NODE_NOFOLLOW | 0x0400 |
VFS_NODE_IN_USE | 0x0800 |
VFS_NODE_DIRSYNC | 0x1000 |
| Name | Value |
|---|---|
VFS_OPEN_READ | 0x01 |
VFS_OPEN_WRITE | 0x02 |
VFS_OPEN_RDWR | `VFS_OPEN_READ |
VFS_OPEN_APPEND | 0x04 |
VFS_OPEN_CREAT | 0x08 |
VFS_OPEN_TRUNC | 0x10 |
VFS_OPEN_EXCL | 0x20 |
VFS_OPEN_DIR | 0x40 |
VFS_OPEN_SYMLINK_NOFOLLOW | 0x80 |
VFS_OPEN_NONBLOCK | 0x100 |
VFS_OPEN_SYNC | 0x200 |
VFS_OPEN_NOATIME | 0x400 |
voidvfs_node_print(struct vfs_node*node)enum errnovfs_mount(struct vfs_node*mountpoint,struct vfs_node*target,char *name)enum errnovfs_unmount(struct vfs_mount*mountpoint)struct vfs_node *vfs_finddir(struct vfs_node*node,char *fname)
Defines
Section titled “Defines”VFS_NAME_MAX:256 // this because of ext2VFS_MODE_FILE:0x8000U // 1000 << 12VFS_MODE_DIR:0x4000U // 0100 << 12VFS_MODE_SYMLINK:0xA000U // 1010 << 12VFS_MODE_CHARDEV:0x2000U // 0010 << 12VFS_MODE_BLOCKDEV:0x6000U // 0110 << 12VFS_MODE_PIPE:0x1000U // 0001 << 12VFS_MODE_SOCKET:0xC000U // 1100 << 12VFS_MODE_O_READ:0x0100U // 0400 (bit 8)VFS_MODE_O_WRITE:0x0080U // 0200 (bit 7)VFS_MODE_O_EXEC:0x0040U // 0100 (bit 6)VFS_MODE_G_READ:0x0020U // 0040 (bit 5)VFS_MODE_G_WRITE:0x0010U // 0020 (bit 4)VFS_MODE_G_EXEC:0x0008U // 0010 (bit 3)VFS_MODE_R_READ:0x0004U // 0004 (bit 2)VFS_MODE_R_WRITE:0x0002U // 0002 (bit 1)VFS_MODE_R_EXEC:0x0001U // 0001 (bit 0)VFS_MODE_READ:(VFS_MODE_O_READ | VFS_MODE_G_READ | VFS_MODE_R_READ)VFS_MODE_WRITE:(VFS_MODE_O_WRITE | VFS_MODE_G_WRITE | VFS_MODE_R_WRITE)VFS_MODE_EXEC:(VFS_MODE_O_EXEC | VFS_MODE_G_EXEC | VFS_MODE_R_EXEC)VFS_MODE_TYPE_MASK:0xF000U