1 /* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 1994, 1995, 1996, 1999 by Ralf Baechle 7 * Copyright (C) 1999 Silicon Graphics, Inc. 8 */ 9 #ifndef _ASM_TYPES_H 10 #define _ASM_TYPES_H 11 12 #ifndef __ASSEMBLY__ 13 14 typedef unsigned short umode_t; 15 16 /* 17 * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the 18 * header files exported to user space 19 */ 20 21 typedef __signed__ char __s8; 22 typedef unsigned char __u8; 23 24 typedef __signed__ short __s16; 25 typedef unsigned short __u16; 26 27 typedef __signed__ int __s32; 28 typedef unsigned int __u32; 29 30 #if defined(__GNUC__) 31 __extension__ typedef __signed__ long long __s64; 32 __extension__ typedef unsigned long long __u64; 33 #else 34 typedef __signed__ long long __s64; 35 typedef unsigned long long __u64; 36 #endif 37 38 #endif /* __ASSEMBLY__ */ 39 40 /* 41 * These aren't exported outside the kernel to avoid name space clashes 42 */ 43 #ifdef __KERNEL__ 44 45 #define BITS_PER_LONG _MIPS_SZLONG 46 47 #ifndef __ASSEMBLY__ 48 49 typedef __signed char s8; 50 typedef unsigned char u8; 51 52 typedef __signed short s16; 53 typedef unsigned short u16; 54 55 typedef __signed int s32; 56 typedef unsigned int u32; 57 58 typedef __signed__ long long s64; 59 typedef unsigned long long u64; 60 61 #if (defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) \ 62 || defined(CONFIG_64BIT) 63 typedef u64 dma_addr_t; 64 65 typedef u64 phys_addr_t; 66 typedef u64 phys_size_t; 67 68 #else 69 typedef u32 dma_addr_t; 70 71 typedef u32 phys_addr_t; 72 typedef u32 phys_size_t; 73 74 #endif 75 typedef u64 dma64_addr_t; 76 77 /* 78 * Don't use phys_t. You've been warned. 79 */ 80 #ifdef CONFIG_64BIT_PHYS_ADDR 81 typedef unsigned long long phys_t; 82 #else 83 typedef unsigned long phys_t; 84 #endif 85 86 #endif /* __ASSEMBLY__ */ 87 88 #endif /* __KERNEL__ */ 89 90 #endif /* _ASM_TYPES_H */ 91