aboutsummaryrefslogtreecommitdiffstats
path: root/tools/include/asm-generic/bitsperlong.h
blob: cfd661c6fc173f9e9b26be35aefe9023164e8ca1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef __ASM_GENERIC_BITS_PER_LONG
#define __ASM_GENERIC_BITS_PER_LONG

#include <uapi/asm-generic/bitsperlong.h>

/*
 * In the kernel, where this file comes from, we can rely on CONFIG_64BIT,
 * here we have to make amends with what the various compilers provides us
 * to figure out if we're on a 64-bit machine...
 */
#ifdef __SIZEOF_LONG__
# if __SIZEOF_LONG__ == 8
#  define CONFIG_64BIT
# endif
#else
# ifdef __WORDSIZE
#  if __WORDSIZE == 64
#   define CONFIG_64BIT
#  endif
# else
#  error Failed to determine BITS_PER_LONG value
# endif
#endif

#ifdef CONFIG_64BIT
#define BITS_PER_LONG 64
#else
#define BITS_PER_LONG 32
#endif /* CONFIG_64BIT */

#if BITS_PER_LONG != __BITS_PER_LONG
#error Inconsistent word size. Check asm/bitsperlong.h
#endif

#ifndef BITS_PER_LONG_LONG
#define BITS_PER_LONG_LONG 64
#endif

#endif /* __ASM_GENERIC_BITS_PER_LONG */