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