xref: /linux/tools/include/asm-generic/bitsperlong.h (revision a4eb44a6435d6d8f9e642407a4a06f65eb90ca04)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ASM_GENERIC_BITS_PER_LONG
3 #define __ASM_GENERIC_BITS_PER_LONG
4 
5 #include <uapi/asm-generic/bitsperlong.h>
6 
7 #ifdef __SIZEOF_LONG__
8 #define BITS_PER_LONG (__CHAR_BIT__ * __SIZEOF_LONG__)
9 #else
10 #define BITS_PER_LONG __WORDSIZE
11 #endif
12 
13 #if BITS_PER_LONG != __BITS_PER_LONG
14 #error Inconsistent word size. Check asm/bitsperlong.h
15 #endif
16 
17 #ifndef BITS_PER_LONG_LONG
18 #define BITS_PER_LONG_LONG 64
19 #endif
20 
21 #define small_const_nbits(nbits) \
22 	(__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG && (nbits) > 0)
23 
24 #endif /* __ASM_GENERIC_BITS_PER_LONG */
25