]>
Commit | Line | Data |
---|---|---|
3ab675d3 WD |
1 | #ifndef __ASM_ARM_TYPES_H |
2 | #define __ASM_ARM_TYPES_H | |
3 | ||
4 | typedef unsigned short umode_t; | |
5 | ||
6 | /* | |
7 | * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the | |
8 | * header files exported to user space | |
9 | */ | |
10 | ||
11 | typedef __signed__ char __s8; | |
12 | typedef unsigned char __u8; | |
13 | ||
14 | typedef __signed__ short __s16; | |
15 | typedef unsigned short __u16; | |
16 | ||
17 | typedef __signed__ int __s32; | |
18 | typedef unsigned int __u32; | |
19 | ||
b075d74e SK |
20 | #if defined(__GNUC__) |
21 | __extension__ typedef __signed__ long long __s64; | |
22 | __extension__ typedef unsigned long long __u64; | |
3ab675d3 WD |
23 | #endif |
24 | ||
25 | /* | |
26 | * These aren't exported outside the kernel to avoid name space clashes | |
27 | */ | |
28 | #ifdef __KERNEL__ | |
29 | ||
30 | typedef signed char s8; | |
31 | typedef unsigned char u8; | |
32 | ||
33 | typedef signed short s16; | |
34 | typedef unsigned short u16; | |
35 | ||
36 | typedef signed int s32; | |
37 | typedef unsigned int u32; | |
38 | ||
39 | typedef signed long long s64; | |
40 | typedef unsigned long long u64; | |
41 | ||
0ae76531 DF |
42 | #ifdef CONFIG_ARM64 |
43 | #define BITS_PER_LONG 64 | |
44 | #else /* CONFIG_ARM64 */ | |
3ab675d3 | 45 | #define BITS_PER_LONG 32 |
0ae76531 | 46 | #endif /* CONFIG_ARM64 */ |
3ab675d3 | 47 | |
f4f0b740 | 48 | #ifdef CONFIG_PHYS_64BIT |
f4f0b740 AB |
49 | typedef unsigned long long phys_addr_t; |
50 | typedef unsigned long long phys_size_t; | |
51 | #else | |
52 | /* DMA addresses are 32-bits wide */ | |
e99ccb48 KG |
53 | typedef unsigned long phys_addr_t; |
54 | typedef unsigned long phys_size_t; | |
f4f0b740 | 55 | #endif |
e99ccb48 | 56 | |
37217f0e LV |
57 | /* |
58 | * A dma_addr_t can hold any valid DMA address, i.e., any address returned | |
59 | * by the DMA API. | |
60 | * | |
61 | * If the DMA API only uses 32-bit addresses, dma_addr_t need only be 32 | |
62 | * bits wide. Bus addresses, e.g., PCI BARs, may be wider than 32 bits, | |
63 | * but drivers do memory-mapped I/O to ioremapped kernel virtual addresses, | |
64 | * so they don't care about the size of the actual bus addresses. | |
65 | */ | |
66 | #ifdef CONFIG_DMA_ADDR_T_64BIT | |
67 | typedef unsigned long long dma_addr_t; | |
68 | #else | |
69 | typedef u32 dma_addr_t; | |
70 | #endif | |
71 | ||
3ab675d3 WD |
72 | #endif /* __KERNEL__ */ |
73 | ||
74 | #endif |