cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sched.h (760B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_GENERIC_BITOPS_SCHED_H_
      3#define _ASM_GENERIC_BITOPS_SCHED_H_
      4
      5#include <linux/compiler.h>	/* unlikely() */
      6#include <asm/types.h>
      7
      8/*
      9 * Every architecture must define this function. It's the fastest
     10 * way of searching a 100-bit bitmap.  It's guaranteed that at least
     11 * one of the 100 bits is cleared.
     12 */
     13static inline int sched_find_first_bit(const unsigned long *b)
     14{
     15#if BITS_PER_LONG == 64
     16	if (b[0])
     17		return __ffs(b[0]);
     18	return __ffs(b[1]) + 64;
     19#elif BITS_PER_LONG == 32
     20	if (b[0])
     21		return __ffs(b[0]);
     22	if (b[1])
     23		return __ffs(b[1]) + 32;
     24	if (b[2])
     25		return __ffs(b[2]) + 64;
     26	return __ffs(b[3]) + 96;
     27#else
     28#error BITS_PER_LONG not defined
     29#endif
     30}
     31
     32#endif /* _ASM_GENERIC_BITOPS_SCHED_H_ */