1
2#ifndef _VGATYPES_
3#define _VGATYPES_
4
5#include "osdef.h"
6
7#ifdef LINUX_XF86
8#include "xf86Version.h"
9#include "xf86Pci.h"
10#endif
11
12#ifdef LINUX_KERNEL
13#include <linux/ioctl.h>
14#endif
15
16#ifndef FALSE
17#define FALSE 0
18#endif
19
20#ifndef TRUE
21#define TRUE 1
22#endif
23
24#ifndef NULL
25#define NULL 0
26#endif
27
28#ifndef CHAR
29typedef char CHAR;
30#endif
31
32#ifndef SHORT
33typedef short SHORT;
34#endif
35
36#ifndef LONG
37typedef long LONG;
38#endif
39
40#ifndef UCHAR
41typedef unsigned char UCHAR;
42#endif
43
44#ifndef USHORT
45typedef unsigned short USHORT;
46#endif
47
48#ifndef ULONG
49typedef unsigned long ULONG;
50#endif
51
52#ifndef PUCHAR
53typedef UCHAR *PUCHAR;
54#endif
55
56#ifndef PUSHORT
57typedef USHORT *PUSHORT;
58#endif
59
60#ifndef PLONGU
61typedef ULONG *PULONG;
62#endif
63
64#ifndef VOID
65typedef void VOID;
66#endif
67
68#ifndef PVOID
69typedef void *PVOID;
70#endif
71
72#ifndef BOOLEAN
73typedef UCHAR BOOLEAN;
74#endif
75
76
77
78
79
80#ifdef LINUX_KERNEL
81typedef unsigned long XGIIOADDRESS;
82#endif
83
84#ifdef LINUX_XF86
85#if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,0,0,0)
86typedef unsigned char IOADDRESS;
87typedef unsigned char XGIIOADDRESS;
88#else
89typedef IOADDRESS XGIIOADDRESS;
90#endif
91#endif
92
93#ifndef VBIOS_VER_MAX_LENGTH
94#define VBIOS_VER_MAX_LENGTH 4
95#endif
96
97#ifndef WIN2000
98
99#ifndef LINUX_KERNEL
100#ifndef XGI_CHIP_TYPE
101typedef enum _XGI_CHIP_TYPE {
102 XGI_VGALegacy = 0,
103#ifdef LINUX_XF86
104 XGI_530,
105 XGI_OLD,
106#endif
107 XGI_300,
108 XGI_630,
109 XGI_640,
110 XGI_315H,
111 XGI_315,
112 XGI_315PRO,
113 XGI_550,
114 XGI_650,
115 XGI_650M,
116 XGI_740,
117 XGI_330,
118 XGI_661,
119 XGI_660,
120 XGI_760,
121 XG40 = 32,
122 XG41,
123 XG42,
124 XG45,
125 XG20 = 48,
126 XG21,
127 XG27,
128 MAX_XGI_CHIP
129} XGI_CHIP_TYPE;
130#endif
131#endif
132
133#ifndef XGI_VB_CHIP_TYPE
134typedef enum _XGI_VB_CHIP_TYPE {
135 VB_CHIP_Legacy = 0,
136 VB_CHIP_301,
137 VB_CHIP_301B,
138 VB_CHIP_301LV,
139 VB_CHIP_302,
140 VB_CHIP_302B,
141 VB_CHIP_302LV,
142 VB_CHIP_301C,
143 VB_CHIP_302ELV,
144 VB_CHIP_UNKNOWN,
145 MAX_VB_CHIP
146} XGI_VB_CHIP_TYPE;
147#endif
148
149#ifndef XGI_LCD_TYPE
150typedef enum _XGI_LCD_TYPE {
151 LCD_INVALID = 0,
152 LCD_320x480,
153 LCD_640x480,
154 LCD_640x480_2,
155 LCD_640x480_3,
156 LCD_800x600,
157 LCD_848x480,
158 LCD_1024x600,
159 LCD_1024x768,
160 LCD_1152x768,
161 LCD_1152x864,
162 LCD_1280x720,
163 LCD_1280x768,
164 LCD_1280x800,
165 LCD_1280x960,
166 LCD_1280x1024,
167 LCD_1400x1050,
168 LCD_1600x1200,
169 LCD_1680x1050,
170 LCD_1920x1440,
171 LCD_2048x1536,
172 LCD_CUSTOM,
173 LCD_UNKNOWN
174} XGI_LCD_TYPE;
175#endif
176
177#endif
178
179#ifndef PXGI_DSReg
180typedef struct _XGI_DSReg
181{
182 UCHAR jIdx;
183 UCHAR jVal;
184} XGI_DSReg, *PXGI_DSReg;
185#endif
186
187#ifndef XGI_HW_DEVICE_INFO
188
189typedef struct _XGI_HW_DEVICE_INFO XGI_HW_DEVICE_INFO, *PXGI_HW_DEVICE_INFO;
190
191typedef BOOLEAN (*PXGI_QUERYSPACE) (PXGI_HW_DEVICE_INFO, ULONG, ULONG, ULONG *);
192
193struct _XGI_HW_DEVICE_INFO
194{
195 ULONG ulExternalChip;
196
197#ifdef LINUX_XF86
198 PCITAG PciTag;
199#endif
200
201 PUCHAR pjVirtualRomBase;
202
203 BOOLEAN UseROM;
204
205 PVOID pDevice;
206
207 PUCHAR pjVideoMemoryAddress;
208
209
210 ULONG ulVideoMemorySize;
211
212 PUCHAR pjIOAddress;
213
214 PUCHAR pjCustomizedROMImage;
215
216 PUCHAR pj2ndVideoMemoryAddress;
217 ULONG ul2ndVideoMemorySize;
218
219 PUCHAR pj2ndIOAddress;
220
221
222
223 UCHAR jChipType;
224
225
226
227 UCHAR jChipRevision;
228
229 UCHAR ujVBChipID;
230
231
232
233 BOOLEAN bNewScratch;
234
235 ULONG ulCRT2LCDType;
236
237 ULONG usExternalChip;
238
239
240 BOOLEAN bIntegratedMMEnabled;
241
242 BOOLEAN bSkipDramSizing;
243
244 BOOLEAN bSkipSense;
245
246 BOOLEAN bIsPowerSaving;
247
248
249 PXGI_DSReg pSR;
250
251
252
253
254 PXGI_DSReg pCR;
255
256
257
258
259
260
261
262 PXGI_QUERYSPACE pQueryVGAConfigSpace;
263
264 PXGI_QUERYSPACE pQueryNorthBridgeSpace;
265
266 UCHAR szVBIOSVer[VBIOS_VER_MAX_LENGTH];
267
268};
269#endif
270
271
272
273
274#ifdef LINUX_XF86
275
276
277#define XGIFB_GET_INFO 0x80046ef8
278
279
280typedef struct _XGIFB_INFO xgifb_info, *pxgifb_info;
281
282struct _XGIFB_INFO {
283 CARD32 xgifb_id;
284#ifndef XGIFB_ID
285#define XGIFB_ID 0x53495346
286#endif
287 CARD32 chip_id;
288 CARD32 memory;
289 CARD32 heapstart;
290 CARD8 fbvidmode;
291
292 CARD8 xgifb_version;
293 CARD8 xgifb_revision;
294 CARD8 xgifb_patchlevel;
295
296 CARD8 xgifb_caps;
297
298 CARD32 xgifb_tqlen;
299
300 CARD32 xgifb_pcibus;
301 CARD32 xgifb_pcislot;
302 CARD32 xgifb_pcifunc;
303
304 CARD8 xgifb_lcdpdc;
305
306 CARD8 xgifb_lcda;
307
308 CARD32 xgifb_vbflags;
309 CARD32 xgifb_currentvbflags;
310
311 CARD32 xgifb_scalelcd;
312 CARD32 xgifb_specialtiming;
313
314 CARD8 xgifb_haveemi;
315 CARD8 xgifb_emi30,xgifb_emi31,xgifb_emi32,xgifb_emi33;
316 CARD8 xgifb_haveemilcd;
317
318 CARD8 xgifb_lcdpdca;
319
320 CARD8 reserved[212];
321};
322#endif
323
324#endif
325
326