diff --git a/src/fs/vfs.c b/src/fs/vfs.c index 72b12b3..e4f42d8 100644 --- a/src/fs/vfs.c +++ b/src/fs/vfs.c @@ -106,7 +106,7 @@ int VFS_Close(fd_t fd) { return resp; } -int VFS_Read(fd_t fd, uint8_t* buf, size_t size) +int VFS_Read_internal(fd_t fd, uint8_t* buf, size_t size) { if (fd < 0 || fd >= VFS_MAX_FDS) return -1; @@ -154,7 +154,16 @@ int VFS_Read(fd_t fd, uint8_t* buf, size_t size) } } -int VFS_Write(fd_t file, uint8_t* data, size_t size) +int VFS_Read(fd_t fd, uint8_t* buf, size_t size) +{ + uint64_t flags; + spinlock_acquire_irqsave(&s_vfs_lock, &flags); + int resp = VFS_Read_internal(fd, buf, size); + spinlock_release_irqrestore(&s_vfs_lock, flags); + return resp; +} + +int VFS_Write_internal(fd_t file, uint8_t* data, size_t size) { switch (file) { @@ -209,4 +218,13 @@ int VFS_Write(fd_t file, uint8_t* data, size_t size) } return -1; +} + +int VFS_Write(fd_t file, uint8_t* data, size_t size) +{ + uint64_t flags; + spinlock_acquire_irqsave(&s_vfs_lock, &flags); + int resp = VFS_Write_internal(file, data, size); + spinlock_release_irqrestore(&s_vfs_lock, flags); + return resp; } \ No newline at end of file