hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// SPDX-License-Identifier: LGPL-2.1
// Definitions taken from glibc for use with older systems, same licensing.
#ifndef _CPU_SET_SCHED_PERF_H
#define _CPU_SET_SCHED_PERF_H
 
#include <features.h>
#include <sched.h>
 
#ifndef CPU_EQUAL
#ifndef __CPU_EQUAL_S
#if __GNUC_PREREQ (2, 91)
# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
  (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)
#else
# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
  (__extension__                                  \
   ({ const __cpu_mask *__arr1 = (cpusetp1)->__bits;                  \
      const __cpu_mask *__arr2 = (cpusetp2)->__bits;                  \
      size_t __imax = (setsize) / sizeof (__cpu_mask);                  \
      size_t __i;                                  \
      for (__i = 0; __i < __imax; ++__i)                      \
   if (__arr1[__i] != __arr2[__i])                          \
     break;                                  \
      __i == __imax; }))
#endif
#endif // __CPU_EQUAL_S
 
#define CPU_EQUAL(cpusetp1, cpusetp2) \
  __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)
#endif // CPU_EQUAL
 
#ifndef CPU_OR
#ifndef __CPU_OP_S
#define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
  (__extension__                                  \
   ({ cpu_set_t *__dest = (destset);                          \
      const __cpu_mask *__arr1 = (srcset1)->__bits;                  \
      const __cpu_mask *__arr2 = (srcset2)->__bits;                  \
      size_t __imax = (setsize) / sizeof (__cpu_mask);                  \
      size_t __i;                                  \
      for (__i = 0; __i < __imax; ++__i)                      \
   ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i];    \
      __dest; }))
#endif // __CPU_OP_S
 
#define CPU_OR(destset, srcset1, srcset2) \
  __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)
#endif // CPU_OR
 
#endif // _CPU_SET_SCHED_PERF_H