Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources

This commit is contained in:
2026-07-06 11:30:13 +08:00
commit e76462eeb7
3451 changed files with 1415300 additions and 0 deletions

86
sdk/include/hal/netdev.h Normal file
View File

@@ -0,0 +1,86 @@
#ifndef _HAL_NETDEVICE_H_
#define _HAL_NETDEVICE_H_
#ifdef __cplusplus
extern "C" {
#endif
enum netdev_events {
NETDEV_EVT_LINK_STATUS_CHANGE,
};
enum netdev_link_status {
NETDEV_LINK_DOWN,
NETDEV_LINK_UP,
};
enum netdev_phy_event {
NETDEV_PHY_EVENT_LINK_CHANGED,
};
enum netdev_ioctl_cmd {
NETDEV_IOCTL_GET_ADDR,
NETDEV_IOCTL_SET_ADDR,
NETDEV_IOCTL_GET_LINK_STATUS,
NETDEV_IOCTL_GET_LINK_SPEED,
NETDEV_IOCTL_FORCE_LINK,
NETDEV_IOCTL_SET_FILTER_MAC,
NETDEV_IOCTL_SET_WIFI_MODE,
NETDEV_IOCTL_HOOK_INPUTDATA,
NETDEV_IOCTL_ENABLE_WIFIBRIDGE,
NETDEV_IOCTL_ENABLE_ICMPMNTR,
NETDEV_IOCTL_CLEAR_ROUTETBL,
NETDEV_IOCTL_SET_MCAST_FIREWALL,
NETDEV_IOCTL_SET_TX_NONBLOCK,
};
struct netdev;
typedef void (*netdev_input_cb)(struct netdev *ndev, uint8 *data, uint32 size, void *priv);
typedef void (*netdev_event_cb)(struct netdev *ndev, uint32 event, uint32 param, void *priv);
struct netdev {
struct dev_obj dev;
void *stack_data;
uint64 rx_bytes, tx_bytes;
};
struct netdev_hal_ops {
struct devobj_ops ops;
int32(*open)(struct netdev *ndev, netdev_input_cb input_cb, netdev_event_cb evt_cb, void *priv);
int32(*close)(struct netdev *ndev);
int32(*ioctl)(struct netdev *ndev, uint32 cmd, uint32 param1, uint32 param2);
int32(*send_data)(struct netdev *ndev, uint8 *p_data, uint32 size);
int32(*send_scatter_data)(struct netdev *ndev, scatter_data *data, uint32 count);
int32(*mdio_write)(struct netdev *ndev, uint16 phy_addr, uint16 reg_addr, uint16 data);
int32(*mdio_read)(struct netdev *ndev, uint16 phy_addr, uint16 reg_addr);
void (*phy_event)(void *phydev, uint32 event, uint32 param1, uint32 param2);
};
int32 netdev_open(struct netdev *ndev, netdev_input_cb input_cb, netdev_event_cb evt_cb, void *priv);
int32 netdev_close(struct netdev *ndev);
int32 netdev_send_data(struct netdev *ndev, uint8 *p_data, uint32 size);
int32 netdev_send_scatter_data(struct netdev *ndev, scatter_data *p_data, uint32 count);
int32 netdev_ioctl(struct netdev *ndev, uint32 cmd, uint32 param1, uint32 param2);
int32 netdev_mdio_write(struct netdev *ndev, uint16 phy_addr, uint16 reg_addr, uint16 data);
int32 netdev_mdio_read(struct netdev *ndev, uint16 phy_addr, uint16 reg_addr);
#define netdev_link_speed(ndev) netdev_ioctl(ndev, NETDEV_IOCTL_GET_LINK_SPEED, 0, 0)
#define netdev_link_status(ndev) netdev_ioctl(ndev, NETDEV_IOCTL_GET_LINK_STATUS, 0, 0)
#define netdev_set_macaddr(ndev, addr) netdev_ioctl(ndev, NETDEV_IOCTL_SET_ADDR, (uint32)addr, 0)
#define netdev_get_macaddr(ndev, addr) netdev_ioctl(ndev, NETDEV_IOCTL_GET_ADDR, (uint32)addr, 0)
#define netdev_force_link(ndev, link_speed, duplex_flag) netdev_ioctl(ndev, NETDEV_IOCTL_FORCE_LINK, link_speed, duplex_flag)
#define netdev_set_filter_mac(ndev, mac_table, size) netdev_ioctl(ndev, NETDEV_IOCTL_SET_FILTER_MAC, (uint32)mac_table, (uint32)size)
#define netdev_set_wifi_mode(ndev, mode) netdev_ioctl(ndev, NETDEV_IOCTL_SET_WIFI_MODE, mode, 0)
#define netdev_hook_inputdata(ndev, data, len) netdev_ioctl(ndev, NETDEV_IOCTL_HOOK_INPUTDATA, data, len)
#define netdev_set_wifi_bridge(ndev, en) netdev_ioctl(ndev, NETDEV_IOCTL_ENABLE_WIFIBRIDGE, en, 0)
#define netdev_clear_routetbl(ndev) netdev_ioctl(ndev, NETDEV_IOCTL_CLEAR_ROUTETBL, 0, 0)
#define netdev_set_mcastfw(ndev, tot_1s, each_1s) netdev_ioctl(ndev, NETDEV_IOCTL_SET_MCAST_FIREWALL, tot_1s, each_1s)
#define netdev_set_tx_nonblock(ndev, nonblock) netdev_ioctl(ndev, NETDEV_IOCTL_SET_TX_NONBLOCK, nonblock, 0)
#ifdef __cplusplus
}
#endif
#endif