1#ifndef _ASM_IA64_TYPES_H
2#define _ASM_IA64_TYPES_H
3
4/*
5 * This file is never included by application software unless
6 * explicitly requested (e.g., via linux/types.h) in which case the
7 * application is Linux specific so (user-) name space pollution is
8 * not a major issue.  However, for interoperability, libraries still
9 * need to be careful to avoid a name clashes.
10 *
11 * Copyright (C) 1998-2000 Hewlett-Packard Co
12 * Copyright (C) 1998-2000 David Mosberger-Tang <davidm@hpl.hp.com>
13 */
14
15#ifdef __ASSEMBLY__
16# define __IA64_UL(x)		(x)
17# define __IA64_UL_CONST(x)	x
18#else
19# define __IA64_UL(x)		((unsigned long)(x))
20# define __IA64_UL_CONST(x)	x##UL
21#endif
22
23#ifndef __ASSEMBLY__
24
25typedef unsigned int umode_t;
26
27/*
28 * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
29 * header files exported to user space
30 */
31
32typedef __signed__ char __s8;
33typedef unsigned char __u8;
34
35typedef __signed__ short __s16;
36typedef unsigned short __u16;
37
38typedef __signed__ int __s32;
39typedef unsigned int __u32;
40
41typedef __signed__ long __s64;
42typedef unsigned long __u64;
43
44/*
45 * These aren't exported outside the kernel to avoid name space clashes
46 */
47# ifdef __KERNEL__
48
49typedef __s8 s8;
50typedef __u8 u8;
51
52typedef __s16 s16;
53typedef __u16 u16;
54
55typedef __s32 s32;
56typedef __u32 u32;
57
58typedef __s64 s64;
59typedef __u64 u64;
60
61#define BITS_PER_LONG 64
62
63/* DMA addresses are 64-bits wide, in general.  */
64
65typedef u64 dma_addr_t;
66
67# endif /* __KERNEL__ */
68#endif /* !__ASSEMBLY__ */
69
70#endif /* _ASM_IA64_TYPES_H */
71