Lines Matching refs:p_ringbuf

9 kstat_t ringbuf_init(k_ringbuf_t *p_ringbuf, void *buf, size_t len, size_t type,  in ringbuf_init()  argument
12 p_ringbuf->type = type; in ringbuf_init()
13 p_ringbuf->buf = buf; in ringbuf_init()
14 p_ringbuf->end = (uint8_t *)buf + len; in ringbuf_init()
15 p_ringbuf->blk_size = block_size; in ringbuf_init()
17 ringbuf_reset(p_ringbuf); in ringbuf_init()
23 kstat_t ringbuf_push(k_ringbuf_t *p_ringbuf, void *data, size_t len) in ringbuf_push() argument
29 if (p_ringbuf->type == RINGBUF_TYPE_FIX) { in ringbuf_push()
31 if (p_ringbuf->freesize < p_ringbuf->blk_size) { in ringbuf_push()
35 if (p_ringbuf->tail == p_ringbuf->end) { in ringbuf_push()
36 p_ringbuf->tail = p_ringbuf->buf; in ringbuf_push()
39 memcpy(p_ringbuf->tail, data, p_ringbuf->blk_size); in ringbuf_push()
40 p_ringbuf->tail += p_ringbuf->blk_size; in ringbuf_push()
41 p_ringbuf->freesize -= p_ringbuf->blk_size; in ringbuf_push()
50 if (p_ringbuf->freesize < (len_bytes + len)) { in ringbuf_push()
56 if (p_ringbuf->tail == p_ringbuf->end) { in ringbuf_push()
57 p_ringbuf->tail = p_ringbuf->buf; in ringbuf_push()
61 split_len = p_ringbuf->end - p_ringbuf->tail; in ringbuf_push()
62 if (p_ringbuf->tail >= p_ringbuf->head && in ringbuf_push()
64 memcpy(p_ringbuf->tail, &c_len[0], split_len); in ringbuf_push()
66 p_ringbuf->tail = p_ringbuf->buf; in ringbuf_push()
67 p_ringbuf->freesize -= split_len; in ringbuf_push()
73 memcpy(p_ringbuf->tail, &c_len[split_len], len_bytes); in ringbuf_push()
74 p_ringbuf->freesize -= len_bytes; in ringbuf_push()
75 p_ringbuf->tail += len_bytes; in ringbuf_push()
81 if (p_ringbuf->tail == p_ringbuf->end) { in ringbuf_push()
82 p_ringbuf->tail = p_ringbuf->buf; in ringbuf_push()
85 split_len = p_ringbuf->end - p_ringbuf->tail; in ringbuf_push()
86 if (p_ringbuf->tail >= p_ringbuf->head && in ringbuf_push()
88 memcpy(p_ringbuf->tail, data, split_len); in ringbuf_push()
91 p_ringbuf->tail = p_ringbuf->buf; in ringbuf_push()
92 p_ringbuf->freesize -= split_len; in ringbuf_push()
95 memcpy(p_ringbuf->tail, data, len); in ringbuf_push()
96 p_ringbuf->tail += len; in ringbuf_push()
97 p_ringbuf->freesize -= len; in ringbuf_push()
103 kstat_t ringbuf_pop(k_ringbuf_t *p_ringbuf, void *pdata, size_t *plen) in ringbuf_pop() argument
111 if (p_ringbuf->type == RINGBUF_TYPE_FIX) { in ringbuf_pop()
112 if (p_ringbuf->head == p_ringbuf->end) { in ringbuf_pop()
113 p_ringbuf->head = p_ringbuf->buf; in ringbuf_pop()
116 memcpy(pdata, p_ringbuf->head, p_ringbuf->blk_size); in ringbuf_pop()
117 p_ringbuf->head += p_ringbuf->blk_size; in ringbuf_pop()
118 p_ringbuf->freesize += p_ringbuf->blk_size; in ringbuf_pop()
121 *plen = p_ringbuf->blk_size; in ringbuf_pop()
129 if (p_ringbuf->head == p_ringbuf->end) { in ringbuf_pop()
130 p_ringbuf->head = p_ringbuf->buf; in ringbuf_pop()
132 split_len = p_ringbuf->end - p_ringbuf->head; in ringbuf_pop()
134 memcpy(&c_len[0], p_ringbuf->head, split_len); in ringbuf_pop()
135 p_ringbuf->head = p_ringbuf->buf; in ringbuf_pop()
136 p_ringbuf->freesize += split_len; in ringbuf_pop()
142 memcpy(&c_len[split_len], p_ringbuf->head, (len_bytes - split_len)); in ringbuf_pop()
143 p_ringbuf->head += (len_bytes - split_len); in ringbuf_pop()
144 p_ringbuf->freesize += (len_bytes - split_len); in ringbuf_pop()
150 if (p_ringbuf->head == p_ringbuf->end) { in ringbuf_pop()
151 p_ringbuf->head = p_ringbuf->buf; in ringbuf_pop()
154 split_len = p_ringbuf->end - p_ringbuf->head; in ringbuf_pop()
155 if (p_ringbuf->head > p_ringbuf->tail && split_len < len) { in ringbuf_pop()
156 memcpy(pdata, p_ringbuf->head, split_len); in ringbuf_pop()
159 p_ringbuf->head = p_ringbuf->buf; in ringbuf_pop()
160 p_ringbuf->freesize += split_len; in ringbuf_pop()
163 memcpy(data, p_ringbuf->head, len); in ringbuf_pop()
164 p_ringbuf->head += len; in ringbuf_pop()
165 p_ringbuf->freesize += len; in ringbuf_pop()
171 uint8_t ringbuf_is_full(k_ringbuf_t *p_ringbuf) in ringbuf_is_full() argument
173 if (p_ringbuf->type == RINGBUF_TYPE_DYN && p_ringbuf->freesize < (RING_BUF_LEN + 1)) { in ringbuf_is_full()
177 if ((p_ringbuf->type == RINGBUF_TYPE_FIX) && in ringbuf_is_full()
178 (p_ringbuf->freesize < p_ringbuf->blk_size)) { in ringbuf_is_full()
185 uint8_t ringbuf_is_empty(k_ringbuf_t *p_ringbuf) in ringbuf_is_empty() argument
187 if (p_ringbuf->freesize == (size_t)(p_ringbuf->end - p_ringbuf->buf)) { in ringbuf_is_empty()
194 kstat_t ringbuf_reset(k_ringbuf_t *p_ringbuf) in ringbuf_reset() argument
196 p_ringbuf->head = p_ringbuf->buf; in ringbuf_reset()
197 p_ringbuf->tail = p_ringbuf->buf; in ringbuf_reset()
198 p_ringbuf->freesize = p_ringbuf->end - p_ringbuf->buf; in ringbuf_reset()