Kernel: Use Userspace<T> in sched_getparam syscall
This commit is contained in:
parent
f011c420c1
commit
9db5a1b92f
Notes:
sideshowbarker
2024-07-19 04:22:21 +09:00
Author: https://github.com/bgianfo Commit: https://github.com/SerenityOS/serenity/commit/9db5a1b92fb Pull-request: https://github.com/SerenityOS/serenity/pull/2955
2 changed files with 5 additions and 5 deletions
|
@ -295,7 +295,7 @@ public:
|
|||
int sys$getsockname(const Syscall::SC_getsockname_params*);
|
||||
int sys$getpeername(const Syscall::SC_getpeername_params*);
|
||||
int sys$sched_setparam(pid_t pid, Userspace<const struct sched_param*>);
|
||||
int sys$sched_getparam(pid_t pid, struct sched_param* param);
|
||||
int sys$sched_getparam(pid_t pid, Userspace<struct sched_param*>);
|
||||
int sys$create_thread(void* (*)(void*), const Syscall::SC_create_thread_params*);
|
||||
void sys$exit_thread(void*);
|
||||
int sys$join_thread(int tid, void** exit_value);
|
||||
|
|
|
@ -76,10 +76,10 @@ int Process::sys$sched_setparam(int tid, Userspace<const struct sched_param*> us
|
|||
return 0;
|
||||
}
|
||||
|
||||
int Process::sys$sched_getparam(pid_t pid, struct sched_param* param)
|
||||
int Process::sys$sched_getparam(pid_t pid, Userspace<struct sched_param*> user_param)
|
||||
{
|
||||
REQUIRE_PROMISE(proc);
|
||||
if (!validate_write_typed(param))
|
||||
if (!validate_write_typed(user_param))
|
||||
return -EFAULT;
|
||||
|
||||
InterruptDisabler disabler;
|
||||
|
@ -93,8 +93,8 @@ int Process::sys$sched_getparam(pid_t pid, struct sched_param* param)
|
|||
if (!is_superuser() && m_euid != peer->process().m_uid && m_uid != peer->process().m_uid)
|
||||
return -EPERM;
|
||||
|
||||
int priority = peer->priority();
|
||||
copy_to_user(¶m->sched_priority, &priority);
|
||||
struct sched_param param { (int) peer->priority() };
|
||||
copy_to_user(user_param, ¶m);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue