mirror of
git://git.musl-libc.org/musl
synced 2024-12-15 19:25:55 +00:00
add pthread_setaffinity_np and pthread_getaffinity_np functions
This commit is contained in:
parent
eeb0328f20
commit
7406fdf5a1
@ -210,6 +210,9 @@ void _pthread_cleanup_pop(struct __ptcb *, int);
|
||||
#define pthread_cleanup_pop(r) _pthread_cleanup_pop(&__cb, (r)); } while(0)
|
||||
|
||||
#ifdef _GNU_SOURCE
|
||||
struct cpu_set_t;
|
||||
int pthread_getaffinity_np(pthread_t, size_t, struct cpu_set_t *);
|
||||
int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *);
|
||||
int pthread_getattr_np(pthread_t, pthread_attr_t *);
|
||||
#endif
|
||||
|
||||
|
26
src/sched/affinity.c
Normal file
26
src/sched/affinity.c
Normal file
@ -0,0 +1,26 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <sched.h>
|
||||
#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);
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <sched.h>
|
||||
#include "syscall.h"
|
||||
|
||||
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);
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <sched.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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user