| #ifndef _ASM_X86_TYPES_H | 
 | #define _ASM_X86_TYPES_H | 
 |  | 
 | #include <asm-generic/int-ll64.h> | 
 |  | 
 | #ifndef __ASSEMBLY__ | 
 |  | 
 | typedef unsigned short umode_t; | 
 |  | 
 | #endif /* __ASSEMBLY__ */ | 
 |  | 
 | /* | 
 |  * These aren't exported outside the kernel to avoid name space clashes | 
 |  */ | 
 | #ifdef __KERNEL__ | 
 |  | 
 | #ifdef CONFIG_X86_32 | 
 | # define BITS_PER_LONG 32 | 
 | #else | 
 | # define BITS_PER_LONG 64 | 
 | #endif | 
 |  | 
 | #ifndef __ASSEMBLY__ | 
 |  | 
 | typedef u64 dma64_addr_t; | 
 | #if defined(CONFIG_X86_64) || defined(CONFIG_HIGHMEM64G) | 
 | /* DMA addresses come in 32-bit and 64-bit flavours. */ | 
 | typedef u64 dma_addr_t; | 
 | #else | 
 | typedef u32 dma_addr_t; | 
 | #endif | 
 |  | 
 | #endif /* __ASSEMBLY__ */ | 
 | #endif /* __KERNEL__ */ | 
 |  | 
 | #endif |