Lines Matching +full:max +full:- +full:len

21     fifo->num = 0;  in fifo8_reset()
22 fifo->head = 0; in fifo8_reset()
27 fifo->data = g_new(uint8_t, capacity); in fifo8_create()
28 fifo->capacity = capacity; in fifo8_create()
34 g_free(fifo->data); in fifo8_destroy()
39 assert(fifo->num < fifo->capacity); in fifo8_push()
40 fifo->data[(fifo->head + fifo->num) % fifo->capacity] = data; in fifo8_push()
41 fifo->num++; in fifo8_push()
48 assert(fifo->num + num <= fifo->capacity); in fifo8_push_all()
50 start = (fifo->head + fifo->num) % fifo->capacity; in fifo8_push_all()
52 if (start + num <= fifo->capacity) { in fifo8_push_all()
53 memcpy(&fifo->data[start], data, num); in fifo8_push_all()
55 avail = fifo->capacity - start; in fifo8_push_all()
56 memcpy(&fifo->data[start], data, avail); in fifo8_push_all()
57 memcpy(&fifo->data[0], &data[avail], num - avail); in fifo8_push_all()
60 fifo->num += num; in fifo8_push_all()
67 assert(fifo->num > 0); in fifo8_pop()
68 ret = fifo->data[fifo->head++]; in fifo8_pop()
69 fifo->head %= fifo->capacity; in fifo8_pop()
70 fifo->num--; in fifo8_pop()
76 assert(fifo->num > 0); in fifo8_peek()
77 return fifo->data[fifo->head]; in fifo8_peek()
80 static const uint8_t *fifo8_peekpop_bufptr(Fifo8 *fifo, uint32_t max, in fifo8_peekpop_bufptr() argument
87 assert(max > 0 && max <= fifo->num); in fifo8_peekpop_bufptr()
88 assert(skip <= fifo->num); in fifo8_peekpop_bufptr()
89 head = (fifo->head + skip) % fifo->capacity; in fifo8_peekpop_bufptr()
90 num = MIN(fifo->capacity - head, max); in fifo8_peekpop_bufptr()
91 ret = &fifo->data[head]; in fifo8_peekpop_bufptr()
94 fifo->head = head + num; in fifo8_peekpop_bufptr()
95 fifo->head %= fifo->capacity; in fifo8_peekpop_bufptr()
96 fifo->num -= num; in fifo8_peekpop_bufptr()
104 const uint8_t *fifo8_peek_bufptr(Fifo8 *fifo, uint32_t max, uint32_t *numptr) in fifo8_peek_bufptr() argument
106 return fifo8_peekpop_bufptr(fifo, max, 0, numptr, false); in fifo8_peek_bufptr()
109 const uint8_t *fifo8_pop_bufptr(Fifo8 *fifo, uint32_t max, uint32_t *numptr) in fifo8_pop_bufptr() argument
111 return fifo8_peekpop_bufptr(fifo, max, 0, numptr, true); in fifo8_pop_bufptr()
119 uint32_t len; in fifo8_peekpop_buf() local
125 len = destlen; in fifo8_peekpop_buf()
126 buf = fifo8_peekpop_bufptr(fifo, len, 0, &n1, do_pop); in fifo8_peekpop_buf()
132 len -= n1; in fifo8_peekpop_buf()
133 len = MIN(len, fifo8_num_used(fifo)); in fifo8_peekpop_buf()
134 if (len) { in fifo8_peekpop_buf()
135 buf = fifo8_peekpop_bufptr(fifo, len, do_pop ? 0 : n1, &n2, do_pop); in fifo8_peekpop_buf()
154 void fifo8_drop(Fifo8 *fifo, uint32_t len) in fifo8_drop() argument
156 len -= fifo8_pop_buf(fifo, NULL, len); in fifo8_drop()
157 assert(len == 0); in fifo8_drop()
162 return (fifo->num == 0); in fifo8_is_empty()
167 return (fifo->num == fifo->capacity); in fifo8_is_full()
172 return fifo->capacity - fifo->num; in fifo8_num_free()
177 return fifo->num; in fifo8_num_used()