exit
This commit is contained in:
@@ -61,6 +61,8 @@ extern "C" size_t syscall_handler(size_t sysnum, size_t p1, size_t p2,
|
||||
case Syscall::ID::SEM_SIGNAL:
|
||||
Syscall::Skeleton::sem_signal(Guard::enter().vault(), p1);
|
||||
break;
|
||||
case Syscall::ID::SYS_EXIT:
|
||||
Syscall::Skeleton::exit(Guard::enter().vault());
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,9 @@ bool sem_wait(Vault &vault, size_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void exit(Vault &vault) { (void)vault; }
|
||||
void exit(Vault &vault) {
|
||||
vault.scheduler.exit();
|
||||
}
|
||||
|
||||
} // namespace Skeleton
|
||||
} // namespace Syscall
|
||||
|
||||
@@ -15,7 +15,7 @@ enum class ID : size_t {
|
||||
SEM_WAIT=6,
|
||||
SEM_SIGNAL=7,
|
||||
//SYS_GETPID=8,
|
||||
//SYS_EXIT= 9,
|
||||
SYS_EXIT= 9,
|
||||
//SYS_KILL=10
|
||||
};
|
||||
} // namespace Syscall
|
||||
@@ -59,3 +59,7 @@ extern "C" ssize_t sys_safe_call(Syscall::ID id, size_t p1, size_t p2,
|
||||
return sys_call(Syscall::ID::SEM_SIGNAL, fd, semid,0,0,0);
|
||||
}
|
||||
|
||||
[[gnu::always_inline]] static inline void sys_exit(){
|
||||
sys_call(Syscall::ID::SYS_EXIT, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user