mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-07 06:44:18 +00:00
* 0day explit mitigation * Memory corruption prevention * Privilege escalation prevention * Buffer over flow prevention * File System corruption defense * Thread escape prevention This may very well be the most intensive inclusion to BrooklynR. This will not be part of an x86 suite nor it will be released as tool kit. The security core toolkit will remain part of kernel base.
32 lines
721 B
C
32 lines
721 B
C
#ifndef _ASM_GENERIC_BITOPS_SCHED_H_
|
|
#define _ASM_GENERIC_BITOPS_SCHED_H_
|
|
|
|
#include <linux/compiler.h> /* unlikely() */
|
|
#include <asm/types.h>
|
|
|
|
/*
|
|
* Every architecture must define this function. It's the fastest
|
|
* way of searching a 100-bit bitmap. It's guaranteed that at least
|
|
* one of the 100 bits is cleared.
|
|
*/
|
|
static inline int sched_find_first_bit(const unsigned long *b)
|
|
{
|
|
#if BITS_PER_LONG == 64
|
|
if (b[0])
|
|
return __ffs(b[0]);
|
|
return __ffs(b[1]) + 64;
|
|
#elif BITS_PER_LONG == 32
|
|
if (b[0])
|
|
return __ffs(b[0]);
|
|
if (b[1])
|
|
return __ffs(b[1]) + 32;
|
|
if (b[2])
|
|
return __ffs(b[2]) + 64;
|
|
return __ffs(b[3]) + 96;
|
|
#else
|
|
#error BITS_PER_LONG not defined
|
|
#endif
|
|
}
|
|
|
|
#endif /* _ASM_GENERIC_BITOPS_SCHED_H_ */
|