diff options
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/Kbuild | 1 | ||||
-rw-r--r-- | include/asm-generic/Kbuild.asm | 1 | ||||
-rw-r--r-- | include/asm-generic/bitsperlong.h | 32 | ||||
-rw-r--r-- | include/asm-generic/int-l64.h | 2 | ||||
-rw-r--r-- | include/asm-generic/int-ll64.h | 2 |
5 files changed, 38 insertions, 0 deletions
diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild index 460b08d51e2e..cbb437875f5c 100644 --- a/include/asm-generic/Kbuild +++ b/include/asm-generic/Kbuild | |||
@@ -1,3 +1,4 @@ | |||
1 | header-y += bitsperlong.h | ||
1 | header-y += errno-base.h | 2 | header-y += errno-base.h |
2 | header-y += errno.h | 3 | header-y += errno.h |
3 | header-y += fcntl.h | 4 | header-y += fcntl.h |
diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm index 70d185534b9d..290910e4ede4 100644 --- a/include/asm-generic/Kbuild.asm +++ b/include/asm-generic/Kbuild.asm | |||
@@ -9,6 +9,7 @@ unifdef-y += a.out.h | |||
9 | endif | 9 | endif |
10 | unifdef-y += auxvec.h | 10 | unifdef-y += auxvec.h |
11 | unifdef-y += byteorder.h | 11 | unifdef-y += byteorder.h |
12 | unifdef-y += bitsperlong.h | ||
12 | unifdef-y += errno.h | 13 | unifdef-y += errno.h |
13 | unifdef-y += fcntl.h | 14 | unifdef-y += fcntl.h |
14 | unifdef-y += ioctl.h | 15 | unifdef-y += ioctl.h |
diff --git a/include/asm-generic/bitsperlong.h b/include/asm-generic/bitsperlong.h new file mode 100644 index 000000000000..4ae54e07de83 --- /dev/null +++ b/include/asm-generic/bitsperlong.h | |||
@@ -0,0 +1,32 @@ | |||
1 | #ifndef __ASM_GENERIC_BITS_PER_LONG | ||
2 | #define __ASM_GENERIC_BITS_PER_LONG | ||
3 | |||
4 | /* | ||
5 | * There seems to be no way of detecting this automatically from user | ||
6 | * space, so 64 bit architectures should override this in their | ||
7 | * bitsperlong.h. In particular, an architecture that supports | ||
8 | * both 32 and 64 bit user space must not rely on CONFIG_64BIT | ||
9 | * to decide it, but rather check a compiler provided macro. | ||
10 | */ | ||
11 | #ifndef __BITS_PER_LONG | ||
12 | #define __BITS_PER_LONG 32 | ||
13 | #endif | ||
14 | |||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | #ifdef CONFIG_64BIT | ||
18 | #define BITS_PER_LONG 64 | ||
19 | #else | ||
20 | #define BITS_PER_LONG 32 | ||
21 | #endif /* CONFIG_64BIT */ | ||
22 | |||
23 | /* | ||
24 | * FIXME: The check currently breaks x86-64 build, so it's | ||
25 | * temporarily disabled. Please fix x86-64 and reenable | ||
26 | */ | ||
27 | #if 0 && BITS_PER_LONG != __BITS_PER_LONG | ||
28 | #error Inconsistent word size. Check asm/bitsperlong.h | ||
29 | #endif | ||
30 | |||
31 | #endif /* __KERNEL__ */ | ||
32 | #endif /* __ASM_GENERIC_BITS_PER_LONG */ | ||
diff --git a/include/asm-generic/int-l64.h b/include/asm-generic/int-l64.h index 2af9b75d77db..1ca3efc976cc 100644 --- a/include/asm-generic/int-l64.h +++ b/include/asm-generic/int-l64.h | |||
@@ -8,6 +8,8 @@ | |||
8 | #ifndef _ASM_GENERIC_INT_L64_H | 8 | #ifndef _ASM_GENERIC_INT_L64_H |
9 | #define _ASM_GENERIC_INT_L64_H | 9 | #define _ASM_GENERIC_INT_L64_H |
10 | 10 | ||
11 | #include <asm/bitsperlong.h> | ||
12 | |||
11 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
12 | /* | 14 | /* |
13 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | 15 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the |
diff --git a/include/asm-generic/int-ll64.h b/include/asm-generic/int-ll64.h index f9bc9ac29b36..f394147c0739 100644 --- a/include/asm-generic/int-ll64.h +++ b/include/asm-generic/int-ll64.h | |||
@@ -8,6 +8,8 @@ | |||
8 | #ifndef _ASM_GENERIC_INT_LL64_H | 8 | #ifndef _ASM_GENERIC_INT_LL64_H |
9 | #define _ASM_GENERIC_INT_LL64_H | 9 | #define _ASM_GENERIC_INT_LL64_H |
10 | 10 | ||
11 | #include <asm/bitsperlong.h> | ||
12 | |||
11 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
12 | /* | 14 | /* |
13 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | 15 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the |