From 13e6a4849c6800eac454fd1010cb2320874f2ed6 Mon Sep 17 00:00:00 2001 From: Alan Hourihane Date: Thu, 4 Dec 2003 13:38:06 +0000 Subject: add SPARC ffb DRI driver --- src/mesa/drivers/dri/ffb/ffb_fifo.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/mesa/drivers/dri/ffb/ffb_fifo.h (limited to 'src/mesa/drivers/dri/ffb/ffb_fifo.h') diff --git a/src/mesa/drivers/dri/ffb/ffb_fifo.h b/src/mesa/drivers/dri/ffb/ffb_fifo.h new file mode 100644 index 0000000000..886d71b76e --- /dev/null +++ b/src/mesa/drivers/dri/ffb/ffb_fifo.h @@ -0,0 +1,28 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/ffb/ffb_fifo.h,v 1.2 2002/02/22 21:32:58 dawes Exp $ */ + +#ifndef _FFB_FIFO_H +#define _FFB_FIFO_H + +#define FFBFifo(__fmesa, __n) \ +do { ffbScreenPrivate *__fScrn = (__fmesa)->ffbScreen; \ + int __cur_slots = __fScrn->fifo_cache; \ + if ((__cur_slots - (__n)) < 0) { \ + ffb_fbcPtr __ffb = __fmesa->regs; \ + do { __cur_slots = (((int)__ffb->ucsr & FFB_UCSR_FIFO_MASK) - 4); \ + } while ((__cur_slots - (__n)) < 0); \ + } (__fScrn)->fifo_cache = (__cur_slots - (__n)); \ +} while(0) + +#define FFBWait(__fmesa, __ffb) \ +do { ffbScreenPrivate *__fScrn = (__fmesa)->ffbScreen; \ + if (__fScrn->rp_active) { \ + unsigned int __regval = (__ffb)->ucsr; \ + while((__regval & FFB_UCSR_ALL_BUSY) != 0) { \ + __regval = (__ffb)->ucsr; \ + } \ + __fScrn->fifo_cache = ((int)(__regval & FFB_UCSR_FIFO_MASK)) - 4; \ + __fScrn->rp_active = 0; \ + } \ +} while(0) + +#endif /* !(_FFB_FIFO_H) */ -- cgit v1.2.3