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

Cross-TU shared surface for the ra8_etha driver split. More...

#include "ra8_attributes.h"
#include "ra8_etha.h"
Include dependency graph for ra8_etha_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ra8_etha_slot_t
 Per-port runtime state. More...

Functions

static bool internal_port_ok (ra8_etha_port_t port)
 Range-check a port argument.

Variables

ra8_etha_slot_t s_etha_slots [k_ra8_etha_port_count]
 Per-port handler table; index = ra8_etha_port_t.

Detailed Description

Cross-TU shared surface for the ra8_etha driver split.

Tag
[Ring 3 / HAL] {World: NS}

The ETHA driver is split across two translation units to stay under the per-file line-count cap: ra8_etha.c holds the lifecycle, IRQ, and traffic-shaping path, while ra8_etha_stats.c holds the per-port statistics, descriptor-ring sizing, and PHY-open path. This src/-local header carries the handful of symbols both TUs share: the logger tag, the per-port runtime slot table and its element type, and the shared port range-check predicate. It is NOT part of the public ABI.

Definition in file ra8_etha_internal.h.

Function Documentation

◆ internal_port_ok()

bool internal_port_ok ( ra8_etha_port_t port)
inlinestatic

Range-check a port argument.

Shared predicate used by both ETHA translation units to bounds-check a ra8_etha_port_t before it indexes s_etha_slots or selects an MMIO register window. Pure; no side effects.

Parameters
[in]portPort to validate.
Returns
true if port is one of ra8_etha_port_t.
Return values
trueport in 0 .. (k_ra8_etha_port_count - 1).
falseport out of range.
Precondition
None.
None.
Postcondition
No state mutated.
Return depends solely on port.
Note
Thread safety: pure function, safe from any context.
Since
0.1.0

Definition at line 72 of file ra8_etha_internal.h.

References k_ra8_etha_port_count, and RA8_INTERNAL.

Referenced by internal_phy_args_ok(), ra8_etha_account_traffic(), ra8_etha_attach_handler(), ra8_etha_clear_stats(), ra8_etha_clear_status(), ra8_etha_configure_cbs(), ra8_etha_configure_cut_through(), ra8_etha_deinit(), ra8_etha_descriptor_ring_init(), ra8_etha_disable_irq(), ra8_etha_dispatch(), ra8_etha_enable_irq(), ra8_etha_enable_tas(), ra8_etha_enter_stop(), ra8_etha_exit_stop(), ra8_etha_get_cbs_state(), ra8_etha_get_queue_level(), ra8_etha_get_stats(), ra8_etha_get_status(), ra8_etha_init(), ra8_etha_open(), ra8_etha_read_stats(), ra8_etha_read_tas_entry(), ra8_etha_reset(), ra8_etha_set_ipv_remap(), ra8_etha_set_max_frame_size(), ra8_etha_set_mode(), ra8_etha_set_preemption(), ra8_etha_set_queue_arb(), ra8_etha_set_queue_depth(), ra8_etha_set_rx_tag_filter(), ra8_etha_set_tas_schedule(), ra8_etha_set_vlan_mode(), ra8_etha_set_vlan_tag(), ra8_etha_tas_ram_reset(), ra8_rmac_attach_handler(), ra8_rmac_clear_status(), ra8_rmac_deinit(), ra8_rmac_dispatch(), ra8_rmac_enter_stop(), ra8_rmac_exit_stop(), ra8_rmac_get_status(), ra8_rmac_init(), ra8_rmac_mdio_c22_read(), ra8_rmac_mdio_c22_write(), ra8_rmac_mdio_c45_read(), ra8_rmac_mdio_c45_write(), ra8_rmac_read_stats(), ra8_rmac_set_frame_size(), ra8_rmac_set_link(), ra8_rmac_set_loopback(), ra8_rmac_set_lpi(), ra8_rmac_set_mac_address(), ra8_rmac_set_magic_packet(), ra8_rmac_set_pause_frame(), ra8_rmac_set_pfc_group(), ra8_rmac_set_ptp_filter(), ra8_rmac_set_rx_filter(), and ra8_rmac_set_vlan_framing().

Variable Documentation

◆ s_etha_slots

ra8_etha_slot_t s_etha_slots[k_ra8_etha_port_count]
extern

Per-port handler table; index = ra8_etha_port_t.

Defined here and shared with the statistics TU (ra8_etha_stats.c) via the extern declaration in ra8_etha_internal.h.

Warning
Not safe to mutate outside the ETHA driver path.
Since
0.1.0

Backing store for the per-port callback, cookie, and counter state. Defined once in ra8_etha.c and referenced from the split-out statistics TU via this declaration.

Warning
Not safe to mutate outside the ETHA driver path.
Since
0.1.0

Definition at line 117 of file ra8_etha.c.

Referenced by ra8_etha_account_traffic(), ra8_etha_attach_handler(), ra8_etha_deinit(), ra8_etha_descriptor_ring_init(), ra8_etha_dispatch(), ra8_etha_get_stats(), and ra8_etha_init().