OLD | NEW |
(Empty) | |
| 1 #define _GNU_SOURCE |
| 2 #include <sched.h> |
| 3 #include <string.h> |
| 4 #include "pthread_impl.h" |
| 5 #include "syscall.h" |
| 6 |
| 7 int sched_setaffinity(pid_t tid, size_t size, const cpu_set_t *set) |
| 8 { |
| 9 return syscall(SYS_sched_setaffinity, tid, size, set); |
| 10 } |
| 11 |
| 12 int pthread_setaffinity_np(pthread_t td, size_t size, const cpu_set_t *set) |
| 13 { |
| 14 return -__syscall(SYS_sched_setaffinity, td->tid, size, set); |
| 15 } |
| 16 |
| 17 static int do_getaffinity(pid_t tid, size_t size, cpu_set_t *set) |
| 18 { |
| 19 long ret = __syscall(SYS_sched_getaffinity, tid, size, set); |
| 20 if (ret < 0) return ret; |
| 21 if (ret < size) memset((char *)set+ret, 0, size-ret); |
| 22 return 0; |
| 23 } |
| 24 |
| 25 int sched_getaffinity(pid_t tid, size_t size, cpu_set_t *set) |
| 26 { |
| 27 return __syscall_ret(do_getaffinity(tid, size, set)); |
| 28 } |
| 29 |
| 30 int pthread_getaffinity_np(pthread_t td, size_t size, cpu_set_t *set) |
| 31 { |
| 32 return -do_getaffinity(td->tid, size, set); |
| 33 } |
OLD | NEW |