Subversion Repositories Kolibri OS

Rev

Rev 1002 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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