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 
13 #ifdef CONFIG_FW_ARC32
14 
15 typedef char		CHAR;
16 typedef short		SHORT;
17 typedef long		LARGE_INTEGER __attribute__ ((__mode__ (__DI__)));
18 typedef long		LONG __attribute__ ((__mode__ (__SI__)));
19 typedef unsigned char	UCHAR;
20 typedef unsigned short	USHORT;
21 typedef unsigned long	ULONG __attribute__ ((__mode__ (__SI__)));
22 typedef void		VOID;
23 
24 /* The pointer types.  Note that we're using a 64-bit compiler but all
25    pointer in the ARC structures are only 32-bit, so we need some disgusting
26    workarounds.	 Keep your vomit bag handy.  */
27 typedef LONG		_PCHAR;
28 typedef LONG		_PSHORT;
29 typedef LONG		_PLARGE_INTEGER;
30 typedef LONG		_PLONG;
31 typedef LONG		_PUCHAR;
32 typedef LONG		_PUSHORT;
33 typedef LONG		_PULONG;
34 typedef LONG		_PVOID;
35 
36 #endif /* CONFIG_FW_ARC32 */
37 
38 #ifdef CONFIG_FW_ARC64
39 
40 typedef char		CHAR;
41 typedef short		SHORT;
42 typedef long		LARGE_INTEGER __attribute__ ((__mode__ (__DI__)));
43 typedef long		LONG __attribute__ ((__mode__ (__DI__)));
44 typedef unsigned char	UCHAR;
45 typedef unsigned short	USHORT;
46 typedef unsigned long	ULONG __attribute__ ((__mode__ (__DI__)));
47 typedef void		VOID;
48 
49 /* The pointer types.  We're 64-bit and the firmware is also 64-bit, so
50    live is sane ...  */
51 typedef CHAR		*_PCHAR;
52 typedef SHORT		*_PSHORT;
53 typedef LARGE_INTEGER	*_PLARGE_INTEGER;
54 typedef LONG		*_PLONG;
55 typedef UCHAR		*_PUCHAR;
56 typedef USHORT		*_PUSHORT;
57 typedef ULONG		*_PULONG;
58 typedef VOID		*_PVOID;
59 
60 #endif /* CONFIG_FW_ARC64  */
61 
62 typedef CHAR		*PCHAR;
63 typedef SHORT		*PSHORT;
64 typedef LARGE_INTEGER	*PLARGE_INTEGER;
65 typedef LONG		*PLONG;
66 typedef UCHAR		*PUCHAR;
67 typedef USHORT		*PUSHORT;
68 typedef ULONG		*PULONG;
69 typedef VOID		*PVOID;
70 
71 /*
72  * Return type of ArcGetDisplayStatus()
73  */
74 typedef struct {
75 	USHORT	CursorXPosition;
76 	USHORT	CursorYPosition;
77 	USHORT	CursorMaxXPosition;
78 	USHORT	CursorMaxYPosition;
79 	USHORT	ForegroundColor;
80 	USHORT	BackgroundColor;
81 	UCHAR	HighIntensity;
82 	UCHAR	Underscored;
83 	UCHAR	ReverseVideo;
84 } DISPLAY_STATUS;
85 
86 #endif /* _ASM_ARC_TYPES_H */
87