mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Update.
2003-05-10 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/bits/sched.h: Define cpu_set_t only if not already defined and when really needed. * sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
This commit is contained in:
@ -88,16 +88,18 @@ struct __sched_param
|
||||
#endif
|
||||
|
||||
|
||||
#if defined _SCHED_H && !defined __cpu_set_t_defined
|
||||
# define __cpu_set_t_defined
|
||||
/* Size definition for CPU sets. */
|
||||
#define __CPU_SETSIZE 1024
|
||||
#define __NCPUBITS (8 * sizeof (__cpu_mask))
|
||||
# define __CPU_SETSIZE 1024
|
||||
# define __NCPUBITS (8 * sizeof (__cpu_mask))
|
||||
|
||||
/* Type for array elements in 'cpu_set'. */
|
||||
typedef unsigned long int __cpu_mask;
|
||||
|
||||
/* Basic access functions. */
|
||||
#define __CPUELT(cpu) ((cpu) / __NCPUBITS)
|
||||
#define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
|
||||
# define __CPUELT(cpu) ((cpu) / __NCPUBITS)
|
||||
# define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
|
||||
|
||||
/* Data structure to describe CPU mask. */
|
||||
typedef struct
|
||||
@ -106,16 +108,17 @@ typedef struct
|
||||
} cpu_set_t;
|
||||
|
||||
/* Access functions for CPU masks. */
|
||||
#define __CPU_ZERO(cpusetp) \
|
||||
# define __CPU_ZERO(cpusetp) \
|
||||
do { \
|
||||
unsigned int __i; \
|
||||
cpu_set *__arr = (cpusetp); \
|
||||
for (__i = 0; __i < sizeof (cpu_set) / sizeof (__cpu_mask); ++__i) \
|
||||
__arr->__bits[__i] = 0; \
|
||||
} while (0)
|
||||
#define __CPU_SET(cpu, cpusetp) \
|
||||
# define __CPU_SET(cpu, cpusetp) \
|
||||
((cpusetp)->__bits[__CPUELT (cpu)] |= __CPUMASK (cpu))
|
||||
#define __CPU_CLR(cpu, cpusetp) \
|
||||
# define __CPU_CLR(cpu, cpusetp) \
|
||||
((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu))
|
||||
#define __CPU_ISSET(cpu, cpusetp) \
|
||||
# define __CPU_ISSET(cpu, cpusetp) \
|
||||
(((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0)
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user