affinity.c 658 B

1234567891011121314151617181920212223242526
  1. #define _GNU_SOURCE
  2. #include <sched.h>
  3. #include "pthread_impl.h"
  4. #include "syscall.h"
  5. int sched_setaffinity(pid_t tid, size_t size, const cpu_set_t *set)
  6. {
  7. return syscall(SYS_sched_setaffinity, tid, size, set);
  8. }
  9. int pthread_setaffinity_np(pthread_t td, size_t size, const cpu_set_t *set)
  10. {
  11. return syscall(SYS_sched_setaffinity, td->tid, size, set);
  12. }
  13. int sched_getaffinity(pid_t tid, size_t size, cpu_set_t *set)
  14. {
  15. long ret = __syscall(SYS_sched_getaffinity, tid, size, set);
  16. if (ret > 0) ret = 0;
  17. return __syscall_ret(ret);
  18. }
  19. int pthread_getaffinity_np(pthread_t td, size_t size, cpu_set_t *set)
  20. {
  21. return sched_getaffinity(td->tid, size, set);
  22. }