fifo.c
上传用户:caisangzi8
上传日期:2013-10-25
资源大小:15756k
文件大小:1k
源码类别:

DVD

开发平台:

C/C++

  1. #include "config.h"
  2. #include "regmap.h"
  3. #include "global.h"
  4. #include "dma.h"
  5. #include "fifo.h"
  6. unsigned FifoGetByte(tFifo *fifo)
  7. {
  8.   unsigned c = fifo->data[fifo->tail];
  9.   FifoTailAdv(fifo, 1);
  10.   return c;
  11. }
  12. unsigned FifoGetWord(tFifo *fifo)
  13. {
  14.   int  t,s;
  15.   BYTE *d;
  16.   unsigned c;
  17.   t = fifo->tail;
  18.   s = fifo->size;
  19.   d = fifo->data;
  20.   c = d[t];
  21.   t = WRAPl(t+1,s);
  22.   c = (c<<8) | d[t];
  23.   fifo->tail = WRAPl(t+1,s);
  24.   return c;
  25. }
  26. int FifoDMARead(tFifo *f, int p, int len)
  27. {
  28.   int i;
  29.   BYTE c;
  30.   for (i=0; i<len; i++)
  31.   {
  32.     c = FifoGetByte(f);
  33.     dma_buf.b[i+p] = c;
  34.   }
  35.   return 0;
  36. }