Loading...
Searching...
No Matches
eth.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2026 Bas Stottelaar <basstottelaar@gmail.com>
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
17
18#include <stdbool.h>
19#include <stddef.h>
20#include <stdint.h>
21
22#include "iolist.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
37int lpc1768_eth_init(const uint8_t *mac);
38
52
69int lpc1768_eth_recv(void *buf, size_t max_len);
70
76void lpc1768_eth_get_mac(uint8_t out[6]);
77
83void lpc1768_eth_set_mac(const uint8_t mac[6]);
84
92
100
117
124
132
143void lpc1768_eth_set_link_speed(uint16_t speed);
144
157
166
167#ifdef __cplusplus
168}
169#endif
170
int lpc1768_eth_start_auto_negotiation(void)
Start PHY auto-negotiation.
bool lpc1768_eth_rx_pending(void)
Return true if the RX ring contains at least one unconsumed frame.
bool lpc1768_eth_link_up(void)
Read the PHY link status (BMSR.LINK)
int lpc1768_eth_send(const iolist_t *iolist)
Submit a frame for transmission.
int lpc1768_eth_recv(void *buf, size_t max_len)
Receive a frame from the RX ring.
int lpc1768_eth_tx_status(void)
Query the completion status of the most recent transmission.
void lpc1768_eth_set_mac(const uint8_t mac[6])
Program a new MAC address.
int lpc1768_eth_init(const uint8_t *mac)
Initialize the EMAC peripheral and PHY.
void lpc1768_eth_complete_auto_negotiation(void)
Complete auto-negotiation and apply speed/duplex to the MAC.
void lpc1768_eth_set_link_speed(uint16_t speed)
Configure the MAC for a given link speed and duplex.
bool lpc1768_eth_get_promiscuous(void)
Return the current promiscuous mode setting.
void lpc1768_eth_set_promiscuous(bool enable)
Enable or disable promiscuous mode.
void lpc1768_eth_get_mac(uint8_t out[6])
Read the currently programmed MAC address.
struct iolist iolist_t
iolist forward declaration
Definition iolist.h:33
iolist scatter / gather IO
iolist structure definition
Definition iolist.h:38