1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:57:43 +00:00

Kernel: Make scheduler control syscalls more generic

The syscalls are renamed as they no longer reflect the exact POSIX
functionality. They can now handle setting/getting scheduler parameters
for both threads and processes.
This commit is contained in:
kleines Filmröllchen 2022-07-24 16:00:51 +02:00 committed by Linus Groh
parent 7bb34279cd
commit b8567d7a9d
6 changed files with 95 additions and 42 deletions

View file

@ -8,6 +8,7 @@
#include <AK/Types.h>
#include <AK/Userspace.h>
#include <Kernel/API/POSIX/sched.h>
constexpr int syscall_vector = 0x82;
@ -145,8 +146,8 @@ enum class NeedsBigProcessLock {
S(recvmsg, NeedsBigProcessLock::Yes) \
S(rename, NeedsBigProcessLock::No) \
S(rmdir, NeedsBigProcessLock::No) \
S(sched_getparam, NeedsBigProcessLock::No) \
S(sched_setparam, NeedsBigProcessLock::No) \
S(scheduler_get_parameters, NeedsBigProcessLock::No) \
S(scheduler_set_parameters, NeedsBigProcessLock::No) \
S(sendfd, NeedsBigProcessLock::No) \
S(sendmsg, NeedsBigProcessLock::Yes) \
S(set_coredump_metadata, NeedsBigProcessLock::No) \
@ -480,6 +481,17 @@ struct SC_chmod_params {
int follow_symlinks;
};
enum class SchedulerParametersMode : bool {
Process,
Thread,
};
struct SC_scheduler_parameters_params {
pid_t pid_or_tid;
SchedulerParametersMode mode;
struct sched_param parameters;
};
void initialize();
int sync();