Rev 876 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 876 | Rev 877 | ||
---|---|---|---|
Line -... | Line 1... | ||
- | 1 | typedef void *pointer; |
|
- | 2 | ||
- | 3 | typedef unsigned int Bool; |
|
- | 4 | ||
- | 5 | typedef unsigned int memType; |
|
- | 6 | ||
- | 7 | typedef struct { float hi, lo; } range; |
|
- | 8 | ||
- | 9 | ||
1 | #include "pci.h" |
10 | #include "pci.h" |
2 | #include "rhd_regs.h" |
11 | #include "rhd_regs.h" |
Line 3... | Line 12... | ||
3 | 12 | ||
4 | #define IS_R300_3D 0 |
13 | #define IS_R300_3D 0 |
Line 103... | Line 112... | ||
103 | #define RHD_MEM_FB 2 |
112 | #define RHD_MEM_FB 2 |
104 | 113 | ||
Line 105... | Line 114... | ||
105 | typedef struct RHDRec |
114 | typedef struct RHDRec |
106 | { |
115 | { |
107 | CARD32 MMIOBase; |
116 | u32_t MMIOBase; |
108 | CARD32 MMIOMapSize; |
117 | u32_t MMIOMapSize; |
109 | CARD32 videoRam; |
118 | u32_t videoRam; |
Line 110... | Line 119... | ||
110 | 119 | ||
111 | // CARD32 FbBase; /* map base of fb */ |
120 | // CARD32 FbBase; /* map base of fb */ |
112 | CARD32 PhisBase; |
121 | u32_t PhisBase; |
113 | CARD32 FbIntAddress; /* card internal address of FB */ |
122 | u32_t FbIntAddress; /* card internal address of FB */ |
Line 114... | Line 123... | ||
114 | CARD32 FbMapSize; |
123 | u32_t FbMapSize; |
115 | 124 | ||
Line 116... | Line 125... | ||
116 | CARD32 FbFreeStart; |
125 | u32_t FbFreeStart; |
117 | CARD32 FbFreeSize; |
126 | u32_t FbFreeSize; |
118 | 127 | ||
Line 126... | Line 135... | ||
126 | char *ChipName; |
135 | char *ChipName; |
Line 127... | Line 136... | ||
127 | 136 | ||
Line 128... | Line 137... | ||
128 | Bool IsIGP; |
137 | Bool IsIGP; |
129 | 138 | ||
Line 130... | Line 139... | ||
130 | CARD32 bus; |
139 | u32_t bus; |
131 | CARD32 devfn; |
140 | u32_t devfn; |
Line 132... | Line 141... | ||
132 | 141 | ||
133 | PCITAG PciTag; |
142 | PCITAG PciTag; |
Line 134... | Line 143... | ||
134 | CARD16 PciDeviceID; |
143 | u16_t PciDeviceID; |
135 | 144 | ||
136 | CARD16 subvendor_id; |
145 | u16_t subvendor_id; |
137 | CARD16 subdevice_id; |
146 | u16_t subdevice_id; |
Line 138... | Line 147... | ||
138 | 147 | ||
139 | CARD32 memBase[6]; |
148 | u32_t memBase[6]; |
Line 140... | Line 149... | ||
140 | CARD32 ioBase[6]; |
149 | u32_t ioBase[6]; |
141 | CARD32 memtype[6]; |
150 | u32_t memtype[6]; |
Line 142... | Line 151... | ||
142 | CARD32 memsize[6]; |
151 | u32_t memsize[6]; |
143 | 152 | ||
144 | struct mem_block *fb_heap; |
153 | struct mem_block *fb_heap; |
145 | struct mem_block *gart_heap; |
154 | struct mem_block *gart_heap; |
146 | 155 | ||
147 | CARD32 displayWidth; |
156 | u32_t displayWidth; |
148 | CARD32 displayHeight; |
157 | u32_t displayHeight; |
149 | 158 | ||
150 | CARD32 __xmin; |
159 | int __xmin; |
151 | CARD32 __ymin; |
160 | int __ymin; |
152 | CARD32 __xmax; |
161 | int __xmax; |
153 | CARD32 __ymax; |
162 | int __ymax; |
Line 154... | Line 163... | ||
154 | 163 | ||
155 | CARD32 gui_control; |
164 | u32_t gui_control; |
156 | CARD32 dst_pitch_offset; |
165 | u32_t dst_pitch_offset; |
Line 251... | Line 260... | ||
251 | 260 | ||
Line 252... | Line 261... | ||
252 | 261 | ||
253 | 262 | ||
254 | extern inline void |
263 | extern inline void |
255 | OUTREG8(CARD16 offset, u8 value) |
264 | OUTREG8(u16_t offset, u8_t value) |
256 | { |
265 | { |
Line 257... | Line 266... | ||
257 | *(volatile CARD8 *)((CARD8 *)(rhd.MMIOBase + offset)) = value; |
266 | *(volatile u8_t *)((u8_t *)(rhd.MMIOBase + offset)) = value; |
258 | } |
267 | } |
259 | 268 | ||
260 | 269 | ||
Line 261... | Line 270... | ||
261 | extern inline CARD32 INREG(CARD16 offset) |
270 | extern inline u32_t INREG(u16_t offset) |
Line 262... | Line 271... | ||
262 | { |
271 | { |
263 | return *(volatile CARD32 *)((CARD8*)(rhd.MMIOBase + offset)); |
272 | return *(volatile u32_t *)((u8_t*)(rhd.MMIOBase + offset)); |
264 | } |
273 | } |
265 | 274 | ||
266 | //#define INREG(offset) *(volatile CARD32 *)((CARD8*)(rhd.MMIOBase + (offset))) |
275 | //#define INREG(offset) *(volatile CARD32 *)((CARD8*)(rhd.MMIOBase + (offset))) |
Line 267... | Line 276... | ||
267 | 276 | ||
268 | extern inline void |
277 | extern inline void |
269 | OUTREG(CARD16 offset, CARD32 value) |
278 | OUTREG(u16_t offset, u32_t value) |
270 | { |
279 | { |
Line 271... | Line 280... | ||
271 | *(volatile CARD32 *)((CARD8 *)(rhd.MMIOBase + offset)) = value; |
280 | *(volatile u32_t *)((u8_t *)(rhd.MMIOBase + offset)) = value; |
272 | } |
281 | } |
273 | 282 | ||
274 | extern inline CARD32 _RHDRegRead(RHDPtr rhdPtr, CARD16 offset) |
283 | extern inline u32_t _RHDRegRead(RHDPtr rhdPtr, u16_t offset) |
Line 275... | Line 284... | ||
275 | { |
284 | { |
276 | return *(volatile CARD32 *)((CARD8*)(rhdPtr->MMIOBase + offset)); |
285 | return *(volatile u32_t *)((u8_t*)(rhdPtr->MMIOBase + offset)); |
277 | } |
286 | } |
278 | 287 | ||
279 | extern inline void |
288 | extern inline void |
Line 280... | Line 289... | ||
280 | MASKREG(CARD16 offset, CARD32 value, CARD32 mask) |
289 | MASKREG(u16_t offset, u32_t value, u32_t mask) |
281 | { |
290 | { |
282 | CARD32 tmp; |
291 | u32_t tmp; |
283 | 292 | ||
284 | tmp = INREG(offset); |
293 | tmp = INREG(offset); |
Line 285... | Line 294... | ||
285 | tmp &= ~mask; |
294 | tmp &= ~mask; |
286 | tmp |= (value & mask); |
295 | tmp |= (value & mask); |
287 | OUTREG(offset, tmp); |
296 | OUTREG(offset, tmp); |
288 | }; |
297 | }; |
Line 289... | Line 298... | ||
289 | 298 | ||
290 | extern inline void |
299 | extern inline void |
291 | _RHDRegWrite(RHDPtr rhdPtr, CARD16 offset, CARD32 value) |
300 | _RHDRegWrite(RHDPtr rhdPtr, u16_t offset, u32_t value) |
292 | { |
301 | { |
Line 323... | Line 332... | ||
323 | 332 | ||
Line 324... | Line 333... | ||
324 | #pragma pack (push,1) |
333 | #pragma pack (push,1) |
325 | typedef struct s_cursor |
334 | typedef struct s_cursor |
326 | { |
335 | { |
327 | u32 magic; // 'CURS' |
336 | u32_t magic; // 'CURS' |
328 | void (*destroy)(struct s_cursor*); // destructor |
337 | void (*destroy)(struct s_cursor*); // destructor |
329 | u32 fd; // next object in list |
338 | u32_t fd; // next object in list |
330 | u32 bk; // prev object in list |
339 | u32_t bk; // prev object in list |
331 | u32 pid; // owner id |
340 | u32_t pid; // owner id |
Line 332... | Line 341... | ||
332 | 341 | ||
333 | void *base; // allocated memory |
342 | void *base; // allocated memory |
334 | u32 hot_x; // hotspot coords |
343 | u32_t hot_x; // hotspot coords |
335 | u32 hot_y; |
344 | u32_t hot_y; |
336 | }cursor_t; |
345 | }cursor_t; |
Line 337... | Line 346... | ||
337 | #pragma pack (pop) |
346 | #pragma pack (pop) |
338 | 347 | ||
339 | #define LOAD_FROM_FILE 0 |
348 | #define LOAD_FROM_FILE 0 |
Line 340... | Line 349... | ||
340 | #define LOAD_FROM_MEM 1 |
349 | #define LOAD_FROM_MEM 1 |
341 | #define LOAD_INDIRECT 2 |
350 | #define LOAD_INDIRECT 2 |
342 | 351 | ||
343 | cursor_t *create_cursor(u32 pid, void *src, u32 flags); |
352 | cursor_t *create_cursor(u32_t pid, void *src, u32_t flags); |
Line 344... | Line 353... | ||
344 | void __stdcall copy_cursor(void *img, void *src); |
353 | void __stdcall copy_cursor(void *img, void *src); |