diff options
author | Anton Kling <anton@kling.gg> | 2023-10-23 22:13:19 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-10-23 23:36:34 +0200 |
commit | e05d72ba8f09866b768f3da7776b807072ed7b9b (patch) | |
tree | dc9a1ec45802df7c74ddc9fdd78436b23122e44a /fs/vfs.h | |
parent | 6458875860cde6421a06031702788d9969e0a5db (diff) |
VFS/libc: Create a syscall for mkdir and add the function to libc
Diffstat (limited to 'fs/vfs.h')
-rw-r--r-- | fs/vfs.h | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -47,8 +47,8 @@ struct vfs_fd { int flags; int mode; int reference_count; // Number of usages of this file descriptor, - // once it reaches zero then the contents can - // be freed. + // once it reaches zero then the contents can + // be freed. vfs_inode_t *inode; }; @@ -65,6 +65,7 @@ struct vfs_inode { int (*read)(uint8_t *buffer, uint64_t offset, uint64_t len, vfs_fd_t *fd); int (*write)(uint8_t *buffer, uint64_t offset, uint64_t len, vfs_fd_t *fd); void (*close)(vfs_fd_t *fd); + int (*create_directory)(const char *path, int mode); vfs_vm_object_t *(*get_vm_object)(uint64_t length, uint64_t offset, vfs_fd_t *fd); }; @@ -80,6 +81,7 @@ int vfs_pread(int fd, void *buf, uint64_t count, uint64_t offset); vfs_vm_object_t *vfs_get_vm_object(int fd, uint64_t length, uint64_t offset); int vfs_dup2(int org_fd, int new_fd); vfs_inode_t *vfs_internal_open(const char *file); +int vfs_mkdir(const char *path, int mode); int vfs_create_fd(int flags, int mode, vfs_inode_t *inode, vfs_fd_t **fd); vfs_inode_t *vfs_create_inode( int inode_num, int type, uint8_t has_data, uint8_t can_write, @@ -89,6 +91,7 @@ vfs_inode_t *vfs_create_inode( int (*read)(uint8_t *buffer, uint64_t offset, uint64_t len, vfs_fd_t *fd), int (*write)(uint8_t *buffer, uint64_t offset, uint64_t len, vfs_fd_t *fd), void (*close)(vfs_fd_t *fd), + int (*create_directory)(const char *path, int mode), vfs_vm_object_t *(*get_vm_object)(uint64_t length, uint64_t offset, vfs_fd_t *fd)); #endif |