summaryrefslogtreecommitdiff
path: root/src/g80_type.h
blob: 20b5e8b96d3c93c71105d4bf487bf992caa802d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <xaa.h>
#include <xf86.h>
#include <xf86int10.h>
#include <xf86Cursor.h>

typedef enum Head {
    HEAD0 = 0,
    HEAD1
} Head;

typedef enum ORType {
   DAC,
   SOR
} ORType;

typedef enum ORNum {
   DAC0 = 0,
   DAC1 = 1,
   DAC2 = 2,
   SOR0 = 0,
   SOR1 = 1
} ORNum;

typedef struct G80Rec {
    volatile CARD32 *   reg;
    unsigned char *     mem;

    /* Probed data */
    CARD32              architecture;
    CARD32              RamAmountKBytes; /* Total vidmem */
    CARD32              videoRam;        /* Mapped vidmem */
    const unsigned char*table1;
    int                 offscreenHeight;
    struct {
        ORNum dac;
        ORNum sor;
    } i2cMap[4];

    float               pclk; /* Current mode pclk in kHz */

    Head                head;
    ORType              orType;
    ORNum               or;

    xf86Int10InfoPtr    int10;
    int                 int10Mode; /* Console mode to restore */

    /* Options */
    OptionInfoPtr       Options;
    Bool                HWCursor;
    Bool                NoAccel;

    /* Cursor */
    xf86CursorInfoPtr   CursorInfo;
    Bool                cursorVisible;
    CARD32              tmpCursor[256]; /* Temporary 1bpp cursor image */

    /* XAA */
    XAAInfoRecPtr       xaa;
    CARD32              currentRop;

    /* DMA command buffer */
    CARD32              dmaPut;
    CARD32              dmaCurrent;
    CARD32              dmaFree;
    CARD32              dmaMax;
    CARD32 *            dmaBase;
    void              (*DMAKickoffCallback)(ScrnInfoPtr);

    CloseScreenProcPtr  CloseScreen;
    ScreenBlockHandlerProcPtr BlockHandler;
} G80Rec, *G80Ptr;

#define G80PTR(p) ((G80Ptr)((p)->driverPrivate))