Lines Matching refs:fifo
14 void dev_ringbuff_reset(dev_ringbuf_t *fifo) in dev_ringbuff_reset() argument
17 fifo->write = fifo->read = 0; in dev_ringbuff_reset()
18 fifo->data_len = 0; in dev_ringbuff_reset()
27 static inline uint32_t ringbuffer_size(dev_ringbuf_t *fifo) in ringbuffer_size() argument
29 return fifo->size; in ringbuffer_size()
37 uint32_t dev_ringbuf_len(dev_ringbuf_t *fifo) in dev_ringbuf_len() argument
39 return fifo->data_len; in dev_ringbuf_len()
47 uint32_t dev_ringbuf_avail(dev_ringbuf_t *fifo) in dev_ringbuf_avail() argument
49 return ringbuffer_size(fifo) - dev_ringbuf_len(fifo); in dev_ringbuf_avail()
58 bool dev_ringbuf_is_empty(dev_ringbuf_t *fifo) in dev_ringbuf_is_empty() argument
60 return dev_ringbuf_len(fifo) == 0; in dev_ringbuf_is_empty()
69 bool dev_ringbuf_is_full(dev_ringbuf_t *fifo) in dev_ringbuf_is_full() argument
71 return dev_ringbuf_avail(fifo) == 0; in dev_ringbuf_is_full()
84 uint32_t dev_ringbuf_in(dev_ringbuf_t *fifo, const void *datptr, uint32_t len) in dev_ringbuf_in() argument
88 if(dev_ringbuf_is_full(fifo)) in dev_ringbuf_in()
91 tmplen = fifo->size - fifo->data_len; in dev_ringbuf_in()
94 if(fifo->write < fifo->read) { in dev_ringbuf_in()
95 memcpy((void*)&fifo->buffer[fifo->write], (void*)datptr, writelen); in dev_ringbuf_in()
97 tmplen = fifo->size - fifo->write; in dev_ringbuf_in()
99 memcpy((void*)&fifo->buffer[fifo->write], (void*)datptr, writelen); in dev_ringbuf_in()
101 memcpy((void*)&fifo->buffer[fifo->write], (void*)datptr, tmplen); in dev_ringbuf_in()
102 memcpy((void*)fifo->buffer, (uint8_t*)datptr + tmplen, writelen - tmplen); in dev_ringbuf_in()
107 fifo->write = (fifo->write + writelen) % fifo->size; in dev_ringbuf_in()
108 fifo->data_len += writelen; in dev_ringbuf_in()
123 uint32_t dev_ringbuf_out(dev_ringbuf_t *fifo, void *outbuf, uint32_t len) in dev_ringbuf_out() argument
126 if(dev_ringbuf_is_empty(fifo)) in dev_ringbuf_out()
129 uint32_t data_len = fifo->data_len; in dev_ringbuf_out()
131 tmplen = fifo->size - fifo->read; in dev_ringbuf_out()
135 memcpy((void*)outbuf, (void*)&fifo->buffer[fifo->read], readlen); in dev_ringbuf_out()
137 memcpy((void*)outbuf,(void*)&fifo->buffer[fifo->read], tmplen); in dev_ringbuf_out()
138 memcpy((uint8_t*)outbuf + tmplen,(void*)fifo->buffer,readlen - tmplen); in dev_ringbuf_out()
143 fifo->read = (fifo->read + readlen) % fifo->size; in dev_ringbuf_out()
144 fifo->data_len -= readlen; in dev_ringbuf_out()