Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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