Subversion Repositories Kolibri OS

Rev

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);