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

Everything ra8_c6link_open needs that the link cannot discover. More...

#include <ra8_c6link.h>

Collaboration diagram for ra8_c6link_cfg:

Data Fields

ra8_c6link_transport_t transport
 The hardware seam; every row required.
uint8_t * arena
 Protobuf decode arena.
uint32_t arena_bytes
 Bytes available at arena.
ra8_c6link_event_cb_t event_cb
 Announcement sink, or null to count.
ra8_c6link_rx_cb_t rx_cb
 802.3 receive sink, or null to count.
void * cb_ctx
 Context handed to both callbacks.

Detailed Description

Everything ra8_c6link_open needs that the link cannot discover.

The decode arena is the reason this library needs no heap: the generated protobuf decoder allocates, and it is given a bump allocator over this caller-supplied buffer which is reset after every message. That keeps the whole path inside NASA Power of 10 Rule 3 without borrowing an RTOS pool.

Invariant
arena covers arena_bytes, and arena_bytes is at least k_ra8_c6link_arena_min.
event_cb and rx_cb are independently optional; cb_ctx is handed to whichever of them is present.
Example:
ra8_c6link_cfg_t cfg = { .transport = seam, .arena = buf,
.arena_bytes = (uint32_t)sizeof buf };
See also
ra8_c6link_open
Since
0.1.0

Definition at line 433 of file ra8_c6link.h.

Field Documentation

◆ arena

uint8_t* ra8_c6link_cfg::arena

◆ arena_bytes

uint32_t ra8_c6link_cfg::arena_bytes

◆ cb_ctx

void* ra8_c6link_cfg::cb_ctx

Context handed to both callbacks.

Definition at line 439 of file ra8_c6link.h.

Referenced by c6_join_open_link(), c6_wifi_open_link(), internal_c6_cam_open_link(), internal_c6link_op_open(), and ra8_c6link_open().

◆ event_cb

ra8_c6link_event_cb_t ra8_c6link_cfg::event_cb

Announcement sink, or null to count.

Definition at line 437 of file ra8_c6link.h.

Referenced by c6_join_open_link(), c6_wifi_open_link(), internal_c6_cam_open_link(), internal_c6link_op_open(), internal_open_and_join(), and ra8_c6link_open().

◆ rx_cb

ra8_c6link_rx_cb_t ra8_c6link_cfg::rx_cb

802.3 receive sink, or null to count.

Definition at line 438 of file ra8_c6link.h.

Referenced by c6_join_open_link(), internal_c6_cam_open_link(), internal_c6link_op_open(), and ra8_c6link_open().

◆ transport


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