|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Inter-Processor Communication (IPC) HAL driver – public types. More...
Go to the source code of this file.
Data Structures | |
| struct | ra8_ipc_attr_t |
| Snapshot of the security / privilege attribution for one IPC channel, decoded from IPCSAR / IPCPAR. More... | |
| struct | ra8_ipc_config_t |
| Per-channel configuration descriptor passed to ra8_ipc_init. More... | |
| struct | ra8_ipc_ring_t |
| Shared-memory ring-buffer descriptor used by the producer / consumer protocol primitives. More... | |
Typedefs | |
| typedef void(* | ra8_ipc_event_fn_t) (void *ctx, uint8_t channel, uint32_t event_mask, uint32_t message) |
| IPC event callback signature. | |
| typedef void(* | ra8_ipc_irq_fn_t) (void *ctx, uint8_t channel, ra8_ipc_irq_event_id_t event_id) |
| Per-IRQ-event-line callback signature. | |
| typedef void(* | ra8_ipc_nmi_fn_t) (void *ctx, uint8_t unit) |
| NMI dispatch callback signature. | |
Inter-Processor Communication (IPC) HAL driver – public types.
Public typed enums, structures, and callback typedefs for the RA8D2 IPC mailbox driver. Split out of ra8_ipc.h so each header stays within the repository file-size budget; ra8_ipc.h re-includes this header so existing consumers are unaffected.
Definition in file ra8_ipc_types.h.
| typedef void(* ra8_ipc_event_fn_t) (void *ctx, uint8_t channel, uint32_t event_mask, uint32_t message) |
IPC event callback signature.
| [in] | ctx | Context pointer captured at attach time. |
| [in] | channel | Channel id 0..3 that fired the event. |
| [in] | event_mask | Bitwise OR of ra8_ipc_event_t flags. |
| [in] | message | Message word read from RXD when the event set k_ra8_ipc_event_msg_ready; 0 otherwise. |
Definition at line 127 of file ra8_ipc_types.h.
| typedef void(* ra8_ipc_irq_fn_t) (void *ctx, uint8_t channel, ra8_ipc_irq_event_id_t event_id) |
Per-IRQ-event-line callback signature.
| [in] | ctx | Context pointer captured at attach time. |
| [in] | channel | Channel id 0..3. |
| [in] | event_id | IRQ event id 0..7 that fired. |
Definition at line 140 of file ra8_ipc_types.h.
| typedef void(* ra8_ipc_nmi_fn_t) (void *ctx, uint8_t unit) |
NMI dispatch callback signature.
| [in] | ctx | Context pointer captured at attach time. |
| [in] | unit | NMI unit id 0..1 (k_ra8_ipc_unit_ipc0 / ipc1). |
Definition at line 149 of file ra8_ipc_types.h.
| enum ra8_ipc_event_t : uint32_t |
Bitmask reported to the user callback during dispatch.
Mirrors the IPCnSTAm bit layout from HUM Ch 3.2.10 p 214 in a form suitable for the public API. Multiple flags can coexist in a single dispatch – e.g. RDY + IRQ0 if a peer wrote a message and signalled an event in the same window.
Definition at line 42 of file ra8_ipc_types.h.
| enum ra8_ipc_irq_event_id_t : uint8_t |
Index of an IRQ event line within a channel (0..7).
Definition at line 63 of file ra8_ipc_types.h.
| enum ra8_ipc_retry_limits_t : uint16_t |
Retry-loop bounds used by the bounded-wait helpers.
NASA Power of 10 Rule 2 demands all loops have statically-provable upper bounds. ra8_ipc_send_message_retry and ra8_ipc_recv_message_retry use these enums so the loop bound is a compile-time constant, not a magic number.
| Enumerator | |
|---|---|
| k_ra8_ipc_retry_default | Default poll bound for FIFO retry. |
| k_ra8_ipc_retry_max | Hard cap accepted by the API. |
| k_ra8_ipc_sem_take_max | Hard cap on semaphore-take spins. |
Definition at line 84 of file ra8_ipc_types.h.