From 61be1cfec1f5da66c68f92a6939e3a38e673c9d6 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 3 May 2012 23:18:26 -0400 Subject: implement stub versions of sched_* these actually work, but for now they prohibit actually setting priority levels and report min/max priority as 0. --- src/misc/sched_yield.c | 10 ---------- src/sched/sched_get_priority_max.c | 11 +++++++++++ src/sched/sched_getparam.c | 7 +++++++ src/sched/sched_getscheduler.c | 7 +++++++ src/sched/sched_rr_get_interval.c | 8 ++++++++ src/sched/sched_setparam.c | 8 ++++++++ src/sched/sched_setscheduler.c | 8 ++++++++ src/sched/sched_yield.c | 10 ++++++++++ 8 files changed, 59 insertions(+), 10 deletions(-) delete mode 100644 src/misc/sched_yield.c create mode 100644 src/sched/sched_get_priority_max.c create mode 100644 src/sched/sched_getparam.c create mode 100644 src/sched/sched_getscheduler.c create mode 100644 src/sched/sched_rr_get_interval.c create mode 100644 src/sched/sched_setparam.c create mode 100644 src/sched/sched_setscheduler.c create mode 100644 src/sched/sched_yield.c (limited to 'src') 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); -- cgit v1.2.1