Lines Matching defs:fifo
38 static inline void DataFifoInit(struct DataFifo *fifo, uint32_t size, void *data)
44 fifo->rdIdx = 0;
45 fifo->wrIdx = 0;
46 fifo->size = size;
47 fifo->data = data;
50 static inline bool DataFifoIsInitialized(struct DataFifo *fifo)
52 return fifo->size != 0;
55 static inline void DataFifoReset(struct DataFifo *fifo)
57 fifo->rdIdx = fifo->wrIdx = 0;
60 static inline uint32_t DataFifoLen(struct DataFifo *fifo)
62 return fifo->wrIdx - fifo->rdIdx;
65 static inline bool DataFifoIsEmpty(struct DataFifo *fifo)
67 return fifo->wrIdx == fifo->rdIdx;
70 static inline bool DataFifoIsFull(struct DataFifo *fifo)
72 return DataFifoLen(fifo) > (fifo->size - 1);
75 static inline uint32_t DataFifoAvailSize(struct DataFifo *fifo)
77 return fifo->size - DataFifoLen(fifo);
80 static inline void DataFifoSkip(struct DataFifo *fifo, uint32_t size)
82 fifo->rdIdx += size;
85 static inline uint32_t DataFifoWrite(struct DataFifo *fifo, uint8_t *data, uint32_t size)
87 uint32_t mask = fifo->size - 1;
88 uint8_t *buf = (uint8_t *)fifo->data;
91 size = MIN(size, DataFifoAvailSize(fifo));
94 buf[fifo->wrIdx++ & mask] = *data++;
99 static inline uint32_t DataFifoRead(struct DataFifo *fifo, uint8_t *data, uint32_t size)
101 uint32_t mask = fifo->size - 1;
102 uint8_t *buf = (uint8_t *)fifo->data;
105 size = MIN(size, DataFifoLen(fifo));
108 *data++ = buf[fifo->rdIdx++ & mask];