Remove CVS keywords.
[mesa.git] / src / mesa / drivers / dri / mga / server / mga_macros.h
1
2 #ifndef _MGA_MACROS_H_
3 #define _MGA_MACROS_H_
4
5 #ifndef PSZ
6 #define PSZ 8
7 #endif
8
9 #if PSZ == 8
10 #define REPLICATE(r) r &= 0xFF; r |= r << 8; r |= r << 16
11 #elif PSZ == 16
12 #define REPLICATE(r) r &= 0xFFFF; r |= r << 16
13 #elif PSZ == 24
14 #define REPLICATE(r) r &= 0xFFFFFF; r |= r << 24
15 #else
16 #define REPLICATE(r) /* */
17 #endif
18
19 #define RGBEQUAL(c) (!((((c) >> 8) ^ (c)) & 0xffff))
20
21 #ifdef XF86DRI
22 #define MGA_SYNC_XTAG 0x275f4200
23
24 #define MGABUSYWAIT() do { \
25 OUTREG(MGAREG_DWGSYNC, MGA_SYNC_XTAG); \
26 while(INREG(MGAREG_DWGSYNC) != MGA_SYNC_XTAG) ; \
27 }while(0);
28
29 #endif
30
31 #define MGAISBUSY() (INREG8(MGAREG_Status + 2) & 0x01)
32
33 #define WAITFIFO(cnt) \
34 if(!pMga->UsePCIRetry) {\
35 register int n = cnt; \
36 if(n > pMga->FifoSize) n = pMga->FifoSize; \
37 while(pMga->fifoCount < (n))\
38 pMga->fifoCount = INREG8(MGAREG_FIFOSTATUS);\
39 pMga->fifoCount -= n;\
40 }
41
42 #define XYADDRESS(x,y) \
43 ((y) * pMga->CurrentLayout.displayWidth + (x) + pMga->YDstOrg)
44
45 #define MAKEDMAINDEX(index) ((((index) >> 2) & 0x7f) | (((index) >> 6) & 0x80))
46
47 #define DMAINDICES(one,two,three,four) \
48 ( MAKEDMAINDEX(one) | \
49 (MAKEDMAINDEX(two) << 8) | \
50 (MAKEDMAINDEX(three) << 16) | \
51 (MAKEDMAINDEX(four) << 24) )
52
53 #if PSZ == 24
54 #define SET_PLANEMASK(p) /**/
55 #else
56 #define SET_PLANEMASK(p) \
57 if(!(pMga->AccelFlags & MGA_NO_PLANEMASK) && ((p) != pMga->PlaneMask)) { \
58 pMga->PlaneMask = (p); \
59 REPLICATE((p)); \
60 OUTREG(MGAREG_PLNWT,(p)); \
61 }
62 #endif
63
64 #define SET_FOREGROUND(c) \
65 if((c) != pMga->FgColor) { \
66 pMga->FgColor = (c); \
67 REPLICATE((c)); \
68 OUTREG(MGAREG_FCOL,(c)); \
69 }
70
71 #define SET_BACKGROUND(c) \
72 if((c) != pMga->BgColor) { \
73 pMga->BgColor = (c); \
74 REPLICATE((c)); \
75 OUTREG(MGAREG_BCOL,(c)); \
76 }
77
78 #define DISABLE_CLIP() { \
79 pMga->AccelFlags &= ~CLIPPER_ON; \
80 WAITFIFO(1); \
81 OUTREG(MGAREG_CXBNDRY, 0xFFFF0000); }
82
83 #ifdef XF86DRI
84 #define CHECK_DMA_QUIESCENT(pMGA, pScrn) { \
85 if (!pMGA->haveQuiescense) { \
86 pMGA->GetQuiescence( pScrn ); \
87 } \
88 }
89 #else
90 #define CHECK_DMA_QUIESCENT(pMGA, pScrn)
91 #endif
92
93 #ifdef USEMGAHAL
94 #define HAL_CHIPSETS ((pMga->Chipset == PCI_CHIP_MGAG200_PCI) || \
95 (pMga->Chipset == PCI_CHIP_MGAG200) || \
96 (pMga->Chipset == PCI_CHIP_MGAG400) || \
97 (pMga->Chipset == PCI_CHIP_MGAG550))
98
99 #define MGA_HAL(x) { \
100 MGAPtr pMga = MGAPTR(pScrn); \
101 if (pMga->HALLoaded && HAL_CHIPSETS) { x; } \
102 }
103 #define MGA_NOT_HAL(x) { \
104 MGAPtr pMga = MGAPTR(pScrn); \
105 if (!pMga->HALLoaded || !HAL_CHIPSETS) { x; } \
106 }
107 #else
108 #define MGA_NOT_HAL(x) { x; }
109 #endif
110
111 #define MGAISGx50(x) ( (((x)->Chipset == PCI_CHIP_MGAG400) && ((x)->ChipRev >= 0x80)) || \
112 ((x)->Chipset == PCI_CHIP_MGAG550) )
113
114 #define MGA_DH_NEEDS_HAL(x) (((x)->Chipset == PCI_CHIP_MGAG400) && \
115 ((x)->ChipRev < 0x80))
116
117 #endif /* _MGA_MACROS_H_ */