Cleanup syscalls
All checks were successful
Build documentation / build-and-deploy (push) Successful in 34s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 34s
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user