W5500EthDeviceAdapter class final
Ethernet-device adapter over W5500 MACRAW HAL backend.
This adapter is owned by HAL because it depends on W5500 register layout and the concrete W5500Device transport API.
Base classes
- class prf::net::eth::IEthernetDevice
- Abstraction of Ethernet-capable L2 device used by lwIP netif runtime.
Public types
-
using HalConfig = W5500Device::
Config -
using HalRuntimeConfig = W5500Device::
RuntimeConfig
Constructors, destructors, conversion operators
- W5500EthDeviceAdapter(W5500Device& device) explicit
Public functions
- void configure(const HalConfig& hal_config, const HalRuntimeConfig& runtime_config)
- Stores hardware and runtime parameters that are used on first init.
- auto dequeue_rx_frame(uint8_t* out, size_t out_capacity, size_t* out_size) -> bool override
- Receives one Ethernet frame from W5500 MACRAW RX path.
- auto enqueue_tx_frame(const uint8_t* frame, size_t frame_size) -> bool override
- Sends one complete Ethernet frame through W5500 MACRAW TX path.
- auto init() -> bool override
- Initializes SPI/GPIO transport and W5500 MACRAW mode.
- auto link_up() const -> bool override
- Reads PHYCFGR link bit from W5500 common register space.
- auto mac_address() const -> const uint8_t* override
- Returns configured source MAC used by MACRAW runtime.
- auto mtu_bytes() const -> size_t override
- Returns maximum Ethernet frame bytes without FCS (1514 by contract).
- auto ready() const -> bool override
- Returns true when adapter was initialized and W5500 responds.
- void service() override
- Periodic service hook (currently no-op for W5500 path).
-
void set_rx_wakeup_context(TaskHandle_
t task_handle) override - Attaches network task handle so IRQ can wake the runtime immediately.