Lines Matching refs:rb
12 int32_t boot_ringbuff_reset(boot_ringbuff_t *rb) in boot_ringbuff_reset() argument
14 if (!rb) { in boot_ringbuff_reset()
18 rb->rd_ptr = rb->buffer; in boot_ringbuff_reset()
19 rb->wr_ptr = rb->buffer; in boot_ringbuff_reset()
20 rb->dirty_size = 0; in boot_ringbuff_reset()
21 rb->free_size = rb->buffer_end - rb->buffer; in boot_ringbuff_reset()
25 int32_t boot_ringbuff_init(boot_ringbuff_t *rb, uint8_t *buffer, int32_t size) in boot_ringbuff_init() argument
27 if (!rb) { in boot_ringbuff_init()
39 rb->buffer = buffer; in boot_ringbuff_init()
40 rb->buffer_end = rb->buffer + size; in boot_ringbuff_init()
41 boot_ringbuff_reset(rb); in boot_ringbuff_init()
45 int32_t boot_ringbuff_freesize(boot_ringbuff_t *rb) in boot_ringbuff_freesize() argument
47 if (!rb) { in boot_ringbuff_freesize()
50 return rb->free_size; in boot_ringbuff_freesize()
53 int32_t boot_ringbuff_dirtysize(boot_ringbuff_t *rb) in boot_ringbuff_dirtysize() argument
55 if (!rb) { in boot_ringbuff_dirtysize()
58 return rb->dirty_size; in boot_ringbuff_dirtysize()
61 int32_t boot_ringbuff_fill(boot_ringbuff_t *rb, uint8_t *buffer, int32_t size) in boot_ringbuff_fill() argument
63 if (!rb) { in boot_ringbuff_fill()
67 if (size > rb->free_size || size <= 0) { in boot_ringbuff_fill()
71 if ((rb->buffer_end - rb->wr_ptr >= size && in boot_ringbuff_fill()
72 rb->wr_ptr >= rb->rd_ptr) || in boot_ringbuff_fill()
73 rb->wr_ptr < rb->rd_ptr) { in boot_ringbuff_fill()
74 memcpy(rb->wr_ptr, buffer, size); in boot_ringbuff_fill()
75 rb->wr_ptr += size; in boot_ringbuff_fill()
76 rb->dirty_size += size; in boot_ringbuff_fill()
77 rb->free_size -= size; in boot_ringbuff_fill()
78 if (rb->wr_ptr >= rb->buffer_end) in boot_ringbuff_fill()
79 rb->wr_ptr = rb->buffer; in boot_ringbuff_fill()
80 } else if (rb->buffer_end - rb->wr_ptr < size && in boot_ringbuff_fill()
81 rb->wr_ptr >= rb->rd_ptr) { in boot_ringbuff_fill()
82 int temp = rb->buffer_end - rb->wr_ptr; in boot_ringbuff_fill()
83 memcpy(rb->wr_ptr, buffer, temp); in boot_ringbuff_fill()
84 rb->wr_ptr = rb->buffer; in boot_ringbuff_fill()
85 memcpy(rb->wr_ptr, buffer + temp, size - temp); in boot_ringbuff_fill()
86 rb->dirty_size += size; in boot_ringbuff_fill()
87 rb->free_size -= size; in boot_ringbuff_fill()
88 rb->wr_ptr += size - temp; in boot_ringbuff_fill()
96 int32_t boot_ringbuff_read(boot_ringbuff_t *rb, uint8_t *buffer, int32_t size) in boot_ringbuff_read() argument
98 if (!rb) { in boot_ringbuff_read()
102 if (size > rb->dirty_size || size <= 0) { in boot_ringbuff_read()
106 if (rb->rd_ptr < rb->wr_ptr && in boot_ringbuff_read()
107 rb->wr_ptr - rb->rd_ptr >= size) { in boot_ringbuff_read()
108 memcpy(buffer, rb->rd_ptr, size); in boot_ringbuff_read()
109 rb->dirty_size -= size; in boot_ringbuff_read()
110 rb->free_size += size; in boot_ringbuff_read()
111 rb->rd_ptr += size; in boot_ringbuff_read()
112 } else if (rb->rd_ptr >= rb->wr_ptr) { in boot_ringbuff_read()
113 if (rb->buffer_end - rb->rd_ptr >= size) { in boot_ringbuff_read()
114 memcpy(buffer, rb->rd_ptr, size); in boot_ringbuff_read()
115 rb->dirty_size -= size; in boot_ringbuff_read()
116 rb->free_size += size; in boot_ringbuff_read()
117 rb->rd_ptr += size; in boot_ringbuff_read()
118 if (rb->rd_ptr >= rb->buffer_end) in boot_ringbuff_read()
119 rb->rd_ptr = rb->buffer; in boot_ringbuff_read()
121 int temp = rb->buffer_end - rb->rd_ptr; in boot_ringbuff_read()
122 memcpy(buffer, rb->rd_ptr, temp); in boot_ringbuff_read()
123 rb->rd_ptr = rb->buffer; in boot_ringbuff_read()
124 memcpy(buffer + temp, rb->rd_ptr, size - temp); in boot_ringbuff_read()
125 rb->dirty_size -= size; in boot_ringbuff_read()
126 rb->free_size += size; in boot_ringbuff_read()
127 rb->rd_ptr += size - temp; in boot_ringbuff_read()