Merge branch 'mesa_7_7_branch'
[mesa.git] / src / mesa / drivers / dri / ffb / ffb_fifo.h
1
2 #ifndef _FFB_FIFO_H
3 #define _FFB_FIFO_H
4
5 #define FFBFifo(__fmesa, __n) \
6 do { ffbScreenPrivate *__fScrn = (__fmesa)->ffbScreen; \
7 int __cur_slots = __fScrn->fifo_cache; \
8 if ((__cur_slots - (__n)) < 0) { \
9 ffb_fbcPtr __ffb = __fmesa->regs; \
10 do { __cur_slots = (((int)__ffb->ucsr & FFB_UCSR_FIFO_MASK) - 4); \
11 } while ((__cur_slots - (__n)) < 0); \
12 } (__fScrn)->fifo_cache = (__cur_slots - (__n)); \
13 } while(0)
14
15 #define FFBWait(__fmesa, __ffb) \
16 do { ffbScreenPrivate *__fScrn = (__fmesa)->ffbScreen; \
17 if (__fScrn->rp_active) { \
18 unsigned int __regval = (__ffb)->ucsr; \
19 while((__regval & FFB_UCSR_ALL_BUSY) != 0) { \
20 __regval = (__ffb)->ucsr; \
21 } \
22 __fScrn->fifo_cache = ((int)(__regval & FFB_UCSR_FIFO_MASK)) - 4; \
23 __fScrn->rp_active = 0; \
24 } \
25 } while(0)
26
27 #endif /* !(_FFB_FIFO_H) */