From 7406fdf5a18b37330de108abb0106f44ebdae2c6 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sat, 10 Aug 2013 21:41:05 -0400 Subject: add pthread_setaffinity_np and pthread_getaffinity_np functions --- src/sched/affinity.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/sched/affinity.c (limited to 'src/sched/affinity.c') diff --git a/src/sched/affinity.c b/src/sched/affinity.c new file mode 100644 index 00000000..3b402111 --- /dev/null +++ b/src/sched/affinity.c @@ -0,0 +1,26 @@ +#define _GNU_SOURCE +#include +#include "pthread_impl.h" +#include "syscall.h" + +int sched_setaffinity(pid_t tid, size_t size, const cpu_set_t *set) +{ + return syscall(SYS_sched_setaffinity, tid, size, set); +} + +int pthread_setaffinity_np(pthread_t td, size_t size, const cpu_set_t *set) +{ + return syscall(SYS_sched_setaffinity, td->tid, size, set); +} + +int sched_getaffinity(pid_t tid, size_t size, cpu_set_t *set) +{ + long ret = __syscall(SYS_sched_getaffinity, tid, size, set); + if (ret > 0) ret = 0; + return __syscall_ret(ret); +} + +int pthread_getaffinity_np(pthread_t td, size_t size, cpu_set_t *set) +{ + return sched_getaffinity(td->tid, size, set); +} -- cgit v1.2.1