Home | History | Annotate | Download | only in asm-x86
      1 #ifndef _ASM_X86_TYPES_H
      2 #define _ASM_X86_TYPES_H
      3 
      4 #ifndef __ASSEMBLY__
      5 
      6 typedef unsigned short umode_t;
      7 
      8 /*
      9  * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
     10  * header files exported to user space
     11  */
     12 
     13 typedef __signed__ char __s8;
     14 typedef unsigned char __u8;
     15 
     16 typedef __signed__ short __s16;
     17 typedef unsigned short __u16;
     18 
     19 typedef __signed__ int __s32;
     20 typedef unsigned int __u32;
     21 
     22 #ifdef __i386__
     23 # ifdef __GNUC__
     24 __extension__ typedef __signed__ long long __s64;
     25 __extension__ typedef unsigned long long __u64;
     26 # endif
     27 #else
     28 typedef __signed__ long long __s64;
     29 typedef unsigned long long __u64;
     30 #endif
     31 
     32 #endif /* __ASSEMBLY__ */
     33 
     34 /*
     35  * These aren't exported outside the kernel to avoid name space clashes
     36  */
     37 #ifdef __KERNEL__
     38 
     39 #ifdef CONFIG_X86_32
     40 # define BITS_PER_LONG 32
     41 #else
     42 # define BITS_PER_LONG 64
     43 #endif
     44 
     45 #ifndef __ASSEMBLY__
     46 
     47 typedef signed char s8;
     48 typedef unsigned char u8;
     49 
     50 typedef signed short s16;
     51 typedef unsigned short u16;
     52 
     53 typedef signed int s32;
     54 typedef unsigned int u32;
     55 
     56 typedef signed long long s64;
     57 typedef unsigned long long u64;
     58 
     59 typedef u64 dma64_addr_t;
     60 #if defined(CONFIG_X86_64) || defined(CONFIG_HIGHMEM64G)
     61 /* DMA addresses come in 32-bit and 64-bit flavours. */
     62 typedef u64 dma_addr_t;
     63 #else
     64 typedef u32 dma_addr_t;
     65 #endif
     66 
     67 #endif /* __ASSEMBLY__ */
     68 #endif /* __KERNEL__ */
     69 
     70 #endif
     71