Subversion Repositories Kolibri OS

Rev

Rev 1406 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1029 serge 1
 
2
 
3
4
 
5
 
6
#define SRV_GETVERSION  0
7
 
8
9
 
10
 
11
#include 
12
 
13
#include 
14
15
#include "pci.h"
16
 
17
#include "syscall.h"
18
 
19
#include "radeon_reg.h"
20
 
21
#include "atihw.h"
22
 
23
#include "accel_2d.h"
24
 
25
RHD_t rhd __attribute__ ((aligned (128)));    /* reduce cache lock */
26
 
27
static clip_t  clip;
28
 
29
static local_pixmap_t scr_pixmap;
30
 
31
32
 
33
 
34
u32_t __stdcall drvEntry(int action)
35
 
36
    RHDPtr rhdPtr;
37
    u32_t retval;
38
39
    int i;
40
 
41
    if(action != 1)
42
 
43
44
    if(!dbg_open("/sys/drivers/ati2d.log"))
45
 
9583 vitalkrilo 46
        printf("Can't open /sys/drivers/ati2d.log\nExit\n");
1029 serge 47
        return 0;
9583 vitalkrilo 48
    }
1029 serge 49
    if( GetScreenBpp() != 32)
50
    {
51
        dbgprintf("32 bpp dispaly mode required !\nExit\t");
52
        return 0;
53
    }
54
55
    if((rhdPtr=FindPciDevice())==NULL)
56
 
57
        dbgprintf("Device not found\n");
58
        return 0;
59
    };
60
61
    dbgprintf("detect %s GART\n",
62
 
63
64
    for(i=0;i<6;i++)
65
 
66
        if(rhd.memBase[i])
67
            dbgprintf("Memory base_%d 0x%x size 0x%x\n",
68
                      i,rhd.memBase[i],(1<
69
    };
70
    for(i=0;i<6;i++)
71
    {
72
        if(rhd.ioBase[i])
73
            dbgprintf("Io base_%d 0x%x size 0x%x\n",
74
                      i,rhd.ioBase[i],(1<
75
    };
76
    if(!RHDPreInit())
77
        return 0;
78
79
    R5xx2DInit();
80
 
81
    Init3DEngine(&rhd);
82
 
83
    retval = RegService("HDRAW", srv_2d);
84
 
85
86
    return retval;
87
 
88
89
90
 
91
 
92
    u32_t *inp;
93
    u32_t *outp;
94
95
    inp = io->input;
96
 
97
98
    switch(io->io_code)
99
 
100
        case SRV_GETVERSION:
101
            if(io->out_size==4)
102
            {
103
                *outp = API_VERSION;
104
                return 0;
105
            }
106
            break;
107
108
        case PX_CREATE:
109
 
110
                return CreatePixmap((pixmap_t*)inp);
111
            break;
112
113
        case PX_DESTROY:
114
 
115
                return DestroyPixmap((pixmap_t*)inp);
116
            break;
117
118
        case PX_CLEAR:
119
 
120
                return ClearPixmap((io_clear_t*)inp);
121
            break;
122
123
        case PX_DRAW_RECT:
124
 
125
                return DrawRect((io_draw_t*)inp);
126
            break;
127
128
        case PX_FILL_RECT:
129
 
130
                return FillRect((io_fill_t*)inp);
131
            break;
132
133
        case PX_LINE:
134
 
135
                return Line((io_draw_t*)inp);
136
            break;
137
138
        case PX_BLIT:
139
 
140
                return Blit((io_blit_t*)inp);
141
            break;
142
143
        case  PX_BLIT_TRANSPARENT:
144
 
145
                return BlitTransparent((io_blit_t*)inp);
146
            break;
147
148
        case PX_BLIT_ALPHA:
149
 
150
                return RadeonComposite((io_blit_t*)inp);
151
            break;
152
153
        default:
154
 
155
  };
156
157
  return ERR_PARAM;
158
 
159
160
161
 
162
 
163
#include "ati_mem.c"
164
165
#include "r500.inc"
166
 
167
#include "clip.inc"
168
 
169
#include "accel_2d.inc"
170
#include "init_3d.inc"
171
#include "blend.inc"
172
173
#if !R300_PIO
174
 
175
#include "init_cp.c"
176
 
177
#endif
178
 
179
>
180
 
181