|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Shared-memory ring-buffer descriptor used by the producer / consumer protocol primitives. More...
#include <ra8_ipc_types.h>
Data Fields | |
| volatile uint32_t * | slots |
| Backing SRAM array (caller-owned). | |
| volatile uint32_t * | head |
| Producer write index (shared). | |
| volatile uint32_t * | tail |
| Consumer read index (shared). | |
| uint32_t | capacity |
Number of 32-bit slots in slots. | |
| uint8_t | channel |
| IPC channel used for notification. | |
| uint8_t | sem_id |
| IPCSEM index used for exclusion. | |
| ra8_ipc_irq_event_id_t | notify_id |
| IRQ event line used for notify. | |
Shared-memory ring-buffer descriptor used by the producer / consumer protocol primitives.
The hardware FIFO carries 32-bit words only – larger payloads are placed in a shared SRAM region and the FIFO carries the producer head index. The ring uses a single hardware semaphore (IPCSEMn) for mutual exclusion of the head / tail update, and the chosen IPC channel for cross-core notification.
cppcheck cannot see the tests so it flags every field as unused.
Definition at line 165 of file ra8_ipc_types.h.
| uint32_t ra8_ipc_ring_t::capacity |
Number of 32-bit slots in slots.
Definition at line 169 of file ra8_ipc_types.h.
Referenced by internal_ra8_ipc_ring_validate(), ra8_ipc_ring_consume(), ra8_ipc_ring_is_full(), and ra8_ipc_ring_produce().
| uint8_t ra8_ipc_ring_t::channel |
IPC channel used for notification.
Definition at line 170 of file ra8_ipc_types.h.
Referenced by internal_ra8_ipc_ring_validate(), and ra8_ipc_ring_produce().
| volatile uint32_t* ra8_ipc_ring_t::head |
Producer write index (shared).
Definition at line 167 of file ra8_ipc_types.h.
Referenced by ra8_ipc_ring_consume(), ra8_ipc_ring_init(), ra8_ipc_ring_is_empty(), ra8_ipc_ring_is_full(), and ra8_ipc_ring_produce().
| ra8_ipc_irq_event_id_t ra8_ipc_ring_t::notify_id |
IRQ event line used for notify.
Definition at line 172 of file ra8_ipc_types.h.
Referenced by internal_ra8_ipc_ring_validate(), and ra8_ipc_ring_produce().
| uint8_t ra8_ipc_ring_t::sem_id |
IPCSEM index used for exclusion.
Definition at line 171 of file ra8_ipc_types.h.
Referenced by internal_ra8_ipc_ring_validate(), ra8_ipc_ring_consume(), and ra8_ipc_ring_produce().
| volatile uint32_t* ra8_ipc_ring_t::slots |
Backing SRAM array (caller-owned).
Definition at line 166 of file ra8_ipc_types.h.
Referenced by ra8_ipc_ring_consume(), ra8_ipc_ring_init(), and ra8_ipc_ring_produce().
| volatile uint32_t* ra8_ipc_ring_t::tail |
Consumer read index (shared).
Definition at line 168 of file ra8_ipc_types.h.
Referenced by ra8_ipc_ring_consume(), ra8_ipc_ring_init(), ra8_ipc_ring_is_empty(), ra8_ipc_ring_is_full(), and ra8_ipc_ring_produce().