diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-05-03 23:18:26 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-05-03 23:18:26 -0400 |
commit | 61be1cfec1f5da66c68f92a6939e3a38e673c9d6 (patch) | |
tree | 5d1221bd675bf7e33c6b53b5e974bd2bf1983756 /src/sched | |
parent | b959d04644d99f27d9f10344e76c079a12bc1ffd (diff) | |
download | musl-61be1cfec1f5da66c68f92a6939e3a38e673c9d6.tar.gz musl-61be1cfec1f5da66c68f92a6939e3a38e673c9d6.tar.xz musl-61be1cfec1f5da66c68f92a6939e3a38e673c9d6.zip |
implement stub versions of sched_*
these actually work, but for now they prohibit actually setting priority levels and report min/max priority as 0.
Diffstat (limited to 'src/sched')
-rw-r--r-- | src/sched/sched_get_priority_max.c | 11 | ||||
-rw-r--r-- | src/sched/sched_getparam.c | 7 | ||||
-rw-r--r-- | src/sched/sched_getscheduler.c | 7 | ||||
-rw-r--r-- | src/sched/sched_rr_get_interval.c | 8 | ||||
-rw-r--r-- | src/sched/sched_setparam.c | 8 | ||||
-rw-r--r-- | src/sched/sched_setscheduler.c | 8 | ||||
-rw-r--r-- | src/sched/sched_yield.c | 10 |
7 files changed, 59 insertions, 0 deletions
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 <sched.h> + +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 <sched.h> +#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 <sched.h> +#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 <sched.h> +#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 <sched.h> +#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 <sched.h> +#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 <sched.h> +#include "syscall.h" +#include "libc.h" + +int __yield() +{ + return syscall(SYS_sched_yield); +} + +weak_alias(__yield, sched_yield); |