From: Rich Felker Date: Fri, 4 May 2012 03:18:26 +0000 (-0400) Subject: implement stub versions of sched_* X-Git-Tag: v0.9.0~22 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=61be1cfec1f5da66c68f92a6939e3a38e673c9d6;p=oweals%2Fmusl.git implement stub versions of sched_* these actually work, but for now they prohibit actually setting priority levels and report min/max priority as 0. --- diff --git a/src/misc/sched_yield.c b/src/misc/sched_yield.c deleted file mode 100644 index 6c0742b4..00000000 --- a/src/misc/sched_yield.c +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include "syscall.h" -#include "libc.h" - -int __yield() -{ - return syscall(SYS_sched_yield); -} - -weak_alias(__yield, sched_yield); diff --git a/src/sched/sched_get_priority_max.c b/src/sched/sched_get_priority_max.c new file mode 100644 index 00000000..64cbca93 --- /dev/null +++ b/src/sched/sched_get_priority_max.c @@ -0,0 +1,11 @@ +#include + +int sched_get_priority_max(int policy) +{ + return 0; +} + +int sched_get_priority_min(int policy) +{ + return 0; +} diff --git a/src/sched/sched_getparam.c b/src/sched/sched_getparam.c new file mode 100644 index 00000000..65be1075 --- /dev/null +++ b/src/sched/sched_getparam.c @@ -0,0 +1,7 @@ +#include +#include "syscall.h" + +int sched_getparam(pid_t pid, struct sched_param *param) +{ + return syscall(SYS_sched_getparam, pid, param); +} diff --git a/src/sched/sched_getscheduler.c b/src/sched/sched_getscheduler.c new file mode 100644 index 00000000..4c922f69 --- /dev/null +++ b/src/sched/sched_getscheduler.c @@ -0,0 +1,7 @@ +#include +#include "syscall.h" + +int sched_getscheduler(pid_t pid) +{ + return syscall(SYS_sched_getscheduler, pid); +} diff --git a/src/sched/sched_rr_get_interval.c b/src/sched/sched_rr_get_interval.c new file mode 100644 index 00000000..43bc4904 --- /dev/null +++ b/src/sched/sched_rr_get_interval.c @@ -0,0 +1,8 @@ +#include +#include "syscall.h" + +int sched_rr_get_interval(pid_t pid, struct timespec *ts) +{ + return syscall(SYS_sched_rr_get_interval, pid, ts); +} + diff --git a/src/sched/sched_setparam.c b/src/sched/sched_setparam.c new file mode 100644 index 00000000..07d61aea --- /dev/null +++ b/src/sched/sched_setparam.c @@ -0,0 +1,8 @@ +#include +#include "syscall.h" + +int sched_setparam(pid_t pid, const struct sched_param *param) +{ + static const struct sched_param def; + return syscall(SYS_sched_setparam, pid, &def); +} diff --git a/src/sched/sched_setscheduler.c b/src/sched/sched_setscheduler.c new file mode 100644 index 00000000..acf5dc25 --- /dev/null +++ b/src/sched/sched_setscheduler.c @@ -0,0 +1,8 @@ +#include +#include "syscall.h" + +int sched_setscheduler(pid_t pid, int sched, const struct sched_param *param) +{ + static const struct sched_param def; + return syscall(SYS_sched_setscheduler, pid, sched, &def); +} diff --git a/src/sched/sched_yield.c b/src/sched/sched_yield.c new file mode 100644 index 00000000..6c0742b4 --- /dev/null +++ b/src/sched/sched_yield.c @@ -0,0 +1,10 @@ +#include +#include "syscall.h" +#include "libc.h" + +int __yield() +{ + return syscall(SYS_sched_yield); +} + +weak_alias(__yield, sched_yield);