mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-03 14:43:35 +08:00
a092ca9453
Add #include <sched.h> int getcpu (unsigned int *cpu, unsigned int *node); to return currently used CPU and NUMA node. Tested on x86-64, x32 and i686 as well as with build-many-glibcs.py. * NEWS: Mention getcpu. * include/sched.h (__getcpu): New libc_hidden_proto. * manual/resource.texi: Document getcpu. * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add getcpu. * sysdeps/unix/sysv/linux/Versions (GLIBC_2.29): Add getcpu. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add getcpu. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/bits/sched.h (getcpu): New prototype. * sysdeps/unix/sysv/linux/getcpu.c: New file. * sysdeps/unix/sysv/linux/tst-skeleton-affinity.c (test_size): Also check getcpu.
33 lines
1.2 KiB
C
33 lines
1.2 KiB
C
#ifndef _SCHED_H
|
|
#include <posix/sched.h>
|
|
|
|
#ifndef _ISOMAC
|
|
/* Now define the internal interfaces. */
|
|
extern int __sched_setparam (__pid_t __pid,
|
|
const struct sched_param *__param);
|
|
libc_hidden_proto (__sched_setparam)
|
|
extern int __sched_getparam (__pid_t __pid, struct sched_param *__param);
|
|
extern int __sched_setscheduler (__pid_t __pid, int __policy,
|
|
const struct sched_param *__param);
|
|
libc_hidden_proto (__sched_setscheduler)
|
|
extern int __sched_getscheduler (__pid_t __pid);
|
|
extern int __sched_yield (void);
|
|
libc_hidden_proto (__sched_yield)
|
|
extern int __sched_get_priority_max (int __algorithm);
|
|
libc_hidden_proto (__sched_get_priority_max)
|
|
extern int __sched_get_priority_min (int __algorithm);
|
|
libc_hidden_proto (__sched_get_priority_min)
|
|
extern int __sched_rr_get_interval (__pid_t __pid, struct timespec *__t);
|
|
|
|
/* These are Linux specific. */
|
|
extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
|
|
int __flags, void *__arg, ...);
|
|
libc_hidden_proto (__clone)
|
|
extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
|
|
size_t __child_stack_size, int __flags, void *__arg, ...);
|
|
libc_hidden_proto (__clone2)
|
|
extern __typeof__ (getcpu) __getcpu;
|
|
libc_hidden_proto (__getcpu)
|
|
#endif
|
|
#endif
|