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 1999 Ralf Baechle (ralf@gnu.org)
7 * Copyright 1999 Silicon Graphics, Inc.
8 */
9#ifndef _ASM_ARC_TYPES_H
10#define _ASM_ARC_TYPES_H
11
12#include <linux/config.h>
13
14#ifdef CONFIG_ARC32
15
16typedef char		CHAR;
17typedef short		SHORT;
18typedef long		LARGE_INTEGER __attribute__ ((__mode__ (__DI__)));
19typedef	long		LONG __attribute__ ((__mode__ (__SI__)));
20typedef unsigned char	UCHAR;
21typedef unsigned short	USHORT;
22typedef unsigned long	ULONG __attribute__ ((__mode__ (__SI__)));
23typedef void		VOID;
24
25/* The pointer types.  Note that we're using a 64-bit compiler but all
26   pointer in the ARC structures are only 32-bit, so we need some disgusting
27   workarounds.  Keep your vomit bag handy.  */
28typedef LONG		_PCHAR;
29typedef LONG		_PSHORT;
30typedef LONG		_PLARGE_INTEGER;
31typedef	LONG		_PLONG;
32typedef LONG		_PUCHAR;
33typedef LONG		_PUSHORT;
34typedef LONG		_PULONG;
35typedef LONG		_PVOID;
36
37#endif /* CONFIG_ARC32 */
38
39#ifdef CONFIG_ARC64
40
41typedef char		CHAR;
42typedef short		SHORT;
43typedef long		LARGE_INTEGER __attribute__ ((__mode__ (__DI__)));
44typedef	long		LONG __attribute__ ((__mode__ (__DI__)));
45typedef unsigned char	UCHAR;
46typedef unsigned short	USHORT;
47typedef unsigned long	ULONG __attribute__ ((__mode__ (__DI__)));
48typedef void		VOID;
49
50/* The pointer types.  We're 64-bit and the firmware is also 64-bit, so
51   live is sane ...  */
52typedef CHAR		*_PCHAR;
53typedef SHORT		*_PSHORT;
54typedef LARGE_INTEGER	*_PLARGE_INTEGER;
55typedef	LONG		*_PLONG;
56typedef UCHAR		*_PUCHAR;
57typedef USHORT		*_PUSHORT;
58typedef ULONG		*_PULONG;
59typedef VOID		*_PVOID;
60
61#endif /* CONFIG_ARC64  */
62
63typedef CHAR		*PCHAR;
64typedef SHORT		*PSHORT;
65typedef LARGE_INTEGER	*PLARGE_INTEGER;
66typedef	LONG		*PLONG;
67typedef UCHAR		*PUCHAR;
68typedef USHORT		*PUSHORT;
69typedef ULONG		*PULONG;
70typedef VOID		*PVOID;
71
72#endif /* _ASM_ARC_TYPES_H */
73