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)
|
#define pthread_cleanup_pop(r) _pthread_cleanup_pop(&__cb, (r)); } while(0)
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#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 *);
|
int pthread_getattr_np(pthread_t, pthread_attr_t *);
|
||||||
#endif
|
#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