Cleanup syscalls
All checks were successful
Build documentation / build-and-deploy (push) Successful in 34s

This commit is contained in:
2026-01-27 17:34:43 +01:00
parent b388b30b24
commit cf51600c6a
12 changed files with 49 additions and 152 deletions

View File

@@ -78,13 +78,12 @@ DEFINE_SYSCALL (sys_unmap) {
return SYSRESULT (procgroup_unmap (proc->procgroup, vaddr, pages));
}
/* int clone (uintptr_t vstack_top, size_t stack_size, void* entry) */
/* int clone (uintptr_t vstack_top, void* entry) */
DEFINE_SYSCALL (sys_clone) {
uintptr_t vstack_top = a1;
size_t stack_size = (size_t)a2;
uintptr_t entry = a3;
struct proc* new = proc_clone (proc, vstack_top, stack_size, entry);
struct proc* new = proc_clone (proc, vstack_top, entry);
DEBUG ("new=%p\n", new);
@@ -105,8 +104,8 @@ DEFINE_SYSCALL (sys_sched) {
return SYSRESULT (ST_OK);
}
/* int create_mutex (int mutex_rid) */
DEFINE_SYSCALL (sys_create_mutex) {
/* int mutex_create (int mutex_rid) */
DEFINE_SYSCALL (sys_mutex_create) {
int mutex_rid = (int)a1;
struct proc_resource* mutex_resource = proc_create_resource_mutex (proc->procgroup, mutex_rid);
@@ -117,8 +116,8 @@ DEFINE_SYSCALL (sys_create_mutex) {
return SYSRESULT (mutex_resource->rid);
}
/* int unlink_mutex (int mutex_rid) */
DEFINE_SYSCALL (sys_unlink_mutex) {
/* int mutex_delete (int mutex_rid) */
DEFINE_SYSCALL (sys_mutex_delete) {
int mutex_rid = (int)a1;
struct proc_resource* mutex_resource = proc_find_resource (proc->procgroup, mutex_rid);
@@ -126,11 +125,13 @@ DEFINE_SYSCALL (sys_unlink_mutex) {
if (mutex_resource == NULL)
return SYSRESULT (-ST_NOT_FOUND);
proc_delete_resource (mutex_resource);
return SYSRESULT (ST_OK);
}
/* int lock_mutex (int mutex_rid) */
DEFINE_SYSCALL (sys_lock_mutex) {
/* int mutex_lock (int mutex_rid) */
DEFINE_SYSCALL (sys_mutex_lock) {
int mutex_rid = (int)a1;
struct proc_resource* mutex_resource = proc_find_resource (proc->procgroup, mutex_rid);
@@ -143,8 +144,8 @@ DEFINE_SYSCALL (sys_lock_mutex) {
return SYSRESULT (ST_OK);
}
/* int unlock_mutex (int mutex_rid) */
DEFINE_SYSCALL (sys_unlock_mutex) {
/* int mutex_unlock (int mutex_rid) */
DEFINE_SYSCALL (sys_mutex_unlock) {
int mutex_rid = (int)a1;
struct proc_resource* mutex_resource = proc_find_resource (proc->procgroup, mutex_rid);
@@ -163,10 +164,10 @@ static syscall_handler_func_t handler_table[] = {
[SYS_UNMAP] = &sys_unmap,
[SYS_CLONE] = &sys_clone,
[SYS_SCHED] = &sys_sched,
[SYS_CREATE_MUTEX] = &sys_create_mutex,
[SYS_UNLINK_MUTEX] = &sys_unlink_mutex,
[SYS_LOCK_MUTEX] = &sys_lock_mutex,
[SYS_UNLOCK_MUTEX] = &sys_unlock_mutex,
[SYS_MUTEX_CREATE] = &sys_mutex_create,
[SYS_MUTEX_DELETE] = &sys_mutex_delete,
[SYS_MUTEX_LOCK] = &sys_mutex_lock,
[SYS_MUTEX_UNLOCK] = &sys_mutex_unlock,
};
syscall_handler_func_t syscall_find_handler (int syscall_num) {