diff options
| author | Kacper <kacper@mail.openlinux.dev> | 2025-12-22 23:27:56 +0100 |
|---|---|---|
| committer | Kacper <kacper@mail.openlinux.dev> | 2025-12-22 23:30:32 +0100 |
| commit | 0f30d227497418c6d3bef7d52244407e30454504 (patch) | |
| tree | 0e1ac19623d3268380cf74328cdf643648a2f43c /lib/libc/sched | |
| parent | 90dad97fc07f049383903a166631e2c257f9b8c1 (diff) | |
Added c11 threads, fixed some locks and add *_unlocked functions
Diffstat (limited to 'lib/libc/sched')
| -rw-r--r-- | lib/libc/sched/Kbuild | 8 | ||||
| -rw-r--r-- | lib/libc/sched/sched_get_priority_max.c | 7 | ||||
| -rw-r--r-- | lib/libc/sched/sched_get_priority_min.c | 7 | ||||
| -rw-r--r-- | lib/libc/sched/sched_getparam.c | 9 | ||||
| -rw-r--r-- | lib/libc/sched/sched_getscheduler.c | 7 | ||||
| -rw-r--r-- | lib/libc/sched/sched_rr_get_interval.c | 7 | ||||
| -rw-r--r-- | lib/libc/sched/sched_setparam.c | 7 | ||||
| -rw-r--r-- | lib/libc/sched/sched_setscheduler.c | 7 | ||||
| -rw-r--r-- | lib/libc/sched/sched_yield.c | 6 |
9 files changed, 65 insertions, 0 deletions
diff --git a/lib/libc/sched/Kbuild b/lib/libc/sched/Kbuild new file mode 100644 index 00000000..9e6415ba --- /dev/null +++ b/lib/libc/sched/Kbuild @@ -0,0 +1,8 @@ +obj-y += sched_get_priority_max.o +obj-y += sched_get_priority_min.o +obj-y += sched_getparam.o +obj-y += sched_getscheduler.o +obj-y += sched_rr_get_interval.o +obj-y += sched_setparam.o +obj-y += sched_setscheduler.o +obj-y += sched_yield.o diff --git a/lib/libc/sched/sched_get_priority_max.c b/lib/libc/sched/sched_get_priority_max.c new file mode 100644 index 00000000..a6a859db --- /dev/null +++ b/lib/libc/sched/sched_get_priority_max.c @@ -0,0 +1,7 @@ +#include <sched.h> +#include <syscall.h> + +int sched_get_priority_max(int policy) +{ + return syscall(sched_get_priority_max, policy); +} diff --git a/lib/libc/sched/sched_get_priority_min.c b/lib/libc/sched/sched_get_priority_min.c new file mode 100644 index 00000000..869afd9c --- /dev/null +++ b/lib/libc/sched/sched_get_priority_min.c @@ -0,0 +1,7 @@ +#include <sched.h> +#include <syscall.h> + +int sched_get_priority_min(int policy) +{ + return syscall(sched_get_priority_min, policy); +} diff --git a/lib/libc/sched/sched_getparam.c b/lib/libc/sched/sched_getparam.c new file mode 100644 index 00000000..0c9ae00e --- /dev/null +++ b/lib/libc/sched/sched_getparam.c @@ -0,0 +1,9 @@ +#include <errno.h> +#include <sched.h> +#include <sys/cdefs.h> + +int sched_getparam(pid_t __unused pid, struct sched_param *__unused param) +{ + errno = ENOSYS; + return -1; +} diff --git a/lib/libc/sched/sched_getscheduler.c b/lib/libc/sched/sched_getscheduler.c new file mode 100644 index 00000000..9dc6da82 --- /dev/null +++ b/lib/libc/sched/sched_getscheduler.c @@ -0,0 +1,7 @@ +#include <sched.h> +#include <syscall.h> + +int sched_getscheduler(pid_t pid) +{ + return syscall(sched_getscheduler, pid); +} diff --git a/lib/libc/sched/sched_rr_get_interval.c b/lib/libc/sched/sched_rr_get_interval.c new file mode 100644 index 00000000..a99f2a3d --- /dev/null +++ b/lib/libc/sched/sched_rr_get_interval.c @@ -0,0 +1,7 @@ +#include <sched.h> +#include <syscall.h> + +int sched_rr_get_interval(pid_t pid, struct timespec *tp) +{ + return syscall(sched_rr_get_interval, pid, tp); +} diff --git a/lib/libc/sched/sched_setparam.c b/lib/libc/sched/sched_setparam.c new file mode 100644 index 00000000..2eae75dd --- /dev/null +++ b/lib/libc/sched/sched_setparam.c @@ -0,0 +1,7 @@ +#include <sched.h> +#include <syscall.h> + +int sched_setparam(pid_t pid, const struct sched_param *param) +{ + return syscall(sched_setparam, pid, param); +} diff --git a/lib/libc/sched/sched_setscheduler.c b/lib/libc/sched/sched_setscheduler.c new file mode 100644 index 00000000..39dd0336 --- /dev/null +++ b/lib/libc/sched/sched_setscheduler.c @@ -0,0 +1,7 @@ +#include <sched.h> +#include <syscall.h> + +int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param) +{ + return syscall(sched_setscheduler, pid, policy, param); +} diff --git a/lib/libc/sched/sched_yield.c b/lib/libc/sched/sched_yield.c new file mode 100644 index 00000000..e74abec8 --- /dev/null +++ b/lib/libc/sched/sched_yield.c @@ -0,0 +1,6 @@ +#include <syscall.h> + +int sched_yield(void) +{ + return syscall(sched_yield); +} |
