1 /*
2 * Copyright (c) 2025 Antmicro
3 * Copyright (c) 2025 Analog Devices
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8 #include <zephyr/sys/ring_buffer.h>
9
10 static struct ring_buf instr_ring_buf;
11 static uint8_t instr_buffer[CONFIG_INSTRUMENTATION_MODE_CALLGRAPH_TRACE_BUFFER_SIZE + 1];
12
instr_buffer_put_claim(uint8_t ** data,uint32_t size)13 uint32_t instr_buffer_put_claim(uint8_t **data, uint32_t size)
14 {
15 return ring_buf_put_claim(&instr_ring_buf, data, size);
16 }
17
instr_buffer_put_finish(uint32_t size)18 int instr_buffer_put_finish(uint32_t size)
19 {
20 return ring_buf_put_finish(&instr_ring_buf, size);
21 }
22
instr_buffer_put(uint8_t * data,uint32_t size)23 uint32_t instr_buffer_put(uint8_t *data, uint32_t size)
24 {
25 return ring_buf_put(&instr_ring_buf, data, size);
26 }
27
instr_buffer_get_claim(uint8_t ** data,uint32_t size)28 uint32_t instr_buffer_get_claim(uint8_t **data, uint32_t size)
29 {
30 return ring_buf_get_claim(&instr_ring_buf, data, size);
31 }
32
instr_buffer_get_finish(uint32_t size)33 int instr_buffer_get_finish(uint32_t size)
34 {
35 return ring_buf_get_finish(&instr_ring_buf, size);
36 }
37
instr_buffer_get(uint8_t * data,uint32_t size)38 uint32_t instr_buffer_get(uint8_t *data, uint32_t size)
39 {
40 return ring_buf_get(&instr_ring_buf, data, size);
41 }
42
instr_buffer_init(void)43 void instr_buffer_init(void)
44 {
45 ring_buf_init(&instr_ring_buf,
46 sizeof(instr_buffer), instr_buffer);
47 }
48
instr_buffer_is_empty(void)49 bool instr_buffer_is_empty(void)
50 {
51 return ring_buf_is_empty(&instr_ring_buf);
52 }
53
instr_buffer_capacity_get(void)54 uint32_t instr_buffer_capacity_get(void)
55 {
56 return ring_buf_capacity_get(&instr_ring_buf);
57 }
58
instr_buffer_space_get(void)59 uint32_t instr_buffer_space_get(void)
60 {
61 return ring_buf_space_get(&instr_ring_buf);
62 }
63