ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_ipc_ring_t Struct Reference

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.

Detailed Description

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.

Field Documentation

◆ capacity

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().

◆ channel

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().

◆ head

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().

◆ notify_id

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().

◆ sem_id

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().

◆ slots

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().

◆ tail

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().


The documentation for this struct was generated from the following file: