xref: /openbmc/linux/tools/include/asm-generic/bitsperlong.h (revision 2a00f026a15d161b47ba3d3417d0fec5193468c3)
1bb970707SArnaldo Carvalho de Melo #ifndef __ASM_GENERIC_BITS_PER_LONG
2bb970707SArnaldo Carvalho de Melo #define __ASM_GENERIC_BITS_PER_LONG
3bb970707SArnaldo Carvalho de Melo 
4bb970707SArnaldo Carvalho de Melo #include <uapi/asm-generic/bitsperlong.h>
5bb970707SArnaldo Carvalho de Melo 
6*2a00f026SArnaldo Carvalho de Melo /*
7*2a00f026SArnaldo Carvalho de Melo  * In the kernel, where this file comes from, we can rely on CONFIG_64BIT,
8*2a00f026SArnaldo Carvalho de Melo  * here we have to make amends with what the various compilers provides us
9*2a00f026SArnaldo Carvalho de Melo  * to figure out if we're on a 64-bit machine...
10*2a00f026SArnaldo Carvalho de Melo  */
11*2a00f026SArnaldo Carvalho de Melo #ifdef __SIZEOF_LONG__
12*2a00f026SArnaldo Carvalho de Melo # if __SIZEOF_LONG__ == 8
13*2a00f026SArnaldo Carvalho de Melo #  define CONFIG_64BIT
14*2a00f026SArnaldo Carvalho de Melo # endif
15*2a00f026SArnaldo Carvalho de Melo #else
16*2a00f026SArnaldo Carvalho de Melo # ifdef __WORDSIZE
17*2a00f026SArnaldo Carvalho de Melo #  if __WORDSIZE == 64
18*2a00f026SArnaldo Carvalho de Melo #   define CONFIG_64BIT
19*2a00f026SArnaldo Carvalho de Melo #  endif
20*2a00f026SArnaldo Carvalho de Melo # else
21*2a00f026SArnaldo Carvalho de Melo #  error Failed to determine BITS_PER_LONG value
22*2a00f026SArnaldo Carvalho de Melo # endif
23*2a00f026SArnaldo Carvalho de Melo #endif
24bb970707SArnaldo Carvalho de Melo 
25bb970707SArnaldo Carvalho de Melo #ifdef CONFIG_64BIT
26bb970707SArnaldo Carvalho de Melo #define BITS_PER_LONG 64
27bb970707SArnaldo Carvalho de Melo #else
28bb970707SArnaldo Carvalho de Melo #define BITS_PER_LONG 32
29bb970707SArnaldo Carvalho de Melo #endif /* CONFIG_64BIT */
30bb970707SArnaldo Carvalho de Melo 
31*2a00f026SArnaldo Carvalho de Melo #if BITS_PER_LONG != __BITS_PER_LONG
32bb970707SArnaldo Carvalho de Melo #error Inconsistent word size. Check asm/bitsperlong.h
33bb970707SArnaldo Carvalho de Melo #endif
34bb970707SArnaldo Carvalho de Melo 
35bb970707SArnaldo Carvalho de Melo #ifndef BITS_PER_LONG_LONG
36bb970707SArnaldo Carvalho de Melo #define BITS_PER_LONG_LONG 64
37bb970707SArnaldo Carvalho de Melo #endif
38bb970707SArnaldo Carvalho de Melo 
39bb970707SArnaldo Carvalho de Melo #endif /* __ASM_GENERIC_BITS_PER_LONG */
40