VFS can now reschedule the calling process
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m48s

This commit is contained in:
2026-03-11 19:07:22 +01:00
parent e765855309
commit 04b7355a3d
10 changed files with 196 additions and 120 deletions

View File

@@ -395,7 +395,7 @@ DEFINE_SYSCALL (sys_read_file) {
return SYSRESULT (-ST_BAD_ADDRESS_SPACE);
spin_lock (&proc->lock);
int ret = vfs_read_file (proc, proc->cwv, path, buffer, off, size);
int ret = vfs_read_file (proc, rctx, proc->cwv, path, buffer, off, size);
spin_unlock (&proc->lock);
return SYSRESULT (ret);
@@ -425,7 +425,7 @@ DEFINE_SYSCALL (sys_describe) {
return SYSRESULT (-ST_BAD_ADDRESS_SPACE);
spin_lock (&proc->lock);
int ret = vfs_describe (proc, proc->cwv, path, desc);
int ret = vfs_describe (proc, rctx, proc->cwv, path, desc);
spin_unlock (&proc->lock);
return SYSRESULT (ret);
@@ -479,7 +479,7 @@ DEFINE_SYSCALL (sys_read_dir_entry) {
return SYSRESULT (-ST_BAD_ADDRESS_SPACE);
spin_lock (&proc->lock);
int ret = vfs_read_dir_entry (proc, proc->cwv, path, entry, entry_num);
int ret = vfs_read_dir_entry (proc, rctx, proc->cwv, path, entry, entry_num);
spin_unlock (&proc->lock);
return SYSRESULT (ret);
@@ -503,7 +503,7 @@ DEFINE_SYSCALL (sys_create_file) {
const char* path = (const char*)((uintptr_t)hhdm->offset + out_paddr);
spin_lock (&proc->lock);
int ret = vfs_create_file (proc, proc->cwv, path);
int ret = vfs_create_file (proc, rctx, proc->cwv, path);
spin_unlock (&proc->lock);
return SYSRESULT (ret);
@@ -536,7 +536,7 @@ DEFINE_SYSCALL (sys_write_file) {
return SYSRESULT (-ST_BAD_ADDRESS_SPACE);
spin_lock (&proc->lock);
int ret = vfs_write_file (proc, proc->cwv, path, buffer, off, size, flags);
int ret = vfs_write_file (proc, rctx, proc->cwv, path, buffer, off, size, flags);
spin_unlock (&proc->lock);
return SYSRESULT (ret);
@@ -616,7 +616,7 @@ DEFINE_SYSCALL (sys_create_dir) {
const char* path = (const char*)((uintptr_t)hhdm->offset + out_paddr);
spin_lock (&proc->lock);
int ret = vfs_create_dir (proc, proc->cwv, path);
int ret = vfs_create_dir (proc, rctx, proc->cwv, path);
spin_unlock (&proc->lock);
return SYSRESULT (ret);
@@ -640,7 +640,7 @@ DEFINE_SYSCALL (sys_remove) {
const char* path = (const char*)((uintptr_t)hhdm->offset + out_paddr);
spin_lock (&proc->lock);
int ret = vfs_remove (proc, proc->cwv, path);
int ret = vfs_remove (proc, rctx, proc->cwv, path);
spin_unlock (&proc->lock);
return SYSRESULT (ret);
@@ -683,7 +683,7 @@ DEFINE_SYSCALL (sys_create_volume) {
if (device == NULL)
return SYSRESULT (-ST_NOT_FOUND);
return SYSRESULT (vfs_create_volume (key, type, device, false));
return SYSRESULT (vfs_create_volume (proc, rctx, key, type, device, false));
}
static syscall_handler_func_t handler_table[] = {