random: move random_min_urandom_seed into CONFIG_SYSCTL ifdef block
[sfrench/cifs-2.6.git] / arch / arm / include / asm / types.h
1 #ifndef _ASM_TYPES_H
2 #define _ASM_TYPES_H
3
4 #include <asm-generic/int-ll64.h>
5
6 /*
7  * The C99 types uintXX_t that are usually defined in 'stdint.h' are not as
8  * unambiguous on ARM as you would expect. For the types below, there is a
9  * difference on ARM between GCC built for bare metal ARM, GCC built for glibc
10  * and the kernel itself, which results in build errors if you try to build with
11  * -ffreestanding and include 'stdint.h' (such as when you include 'arm_neon.h'
12  * in order to use NEON intrinsics)
13  *
14  * As the typedefs for these types in 'stdint.h' are based on builtin defines
15  * supplied by GCC, we can tweak these to align with the kernel's idea of those
16  * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same
17  * source file (provided that -ffreestanding is used).
18  *
19  *                    int32_t         uint32_t               uintptr_t
20  * bare metal GCC     long            unsigned long          unsigned int
21  * glibc GCC          int             unsigned int           unsigned int
22  * kernel             int             unsigned int           unsigned long
23  */
24
25 #ifdef __INT32_TYPE__
26 #undef __INT32_TYPE__
27 #define __INT32_TYPE__          int
28 #endif
29
30 #ifdef __UINT32_TYPE__
31 #undef __UINT32_TYPE__
32 #define __UINT32_TYPE__ unsigned int
33 #endif
34
35 #ifdef __UINTPTR_TYPE__
36 #undef __UINTPTR_TYPE__
37 #define __UINTPTR_TYPE__        unsigned long
38 #endif
39
40 #endif /* _ASM_TYPES_H */