mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 21:47:46 +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:
parent
7bb34279cd
commit
b8567d7a9d
6 changed files with 95 additions and 42 deletions
|
@ -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();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue