1*10465441SEvalZero #ifndef __NETIF_ETHERNETIF_H__ 2*10465441SEvalZero #define __NETIF_ETHERNETIF_H__ 3*10465441SEvalZero 4*10465441SEvalZero #include "lwip/netif.h" 5*10465441SEvalZero #include <rtthread.h> 6*10465441SEvalZero 7*10465441SEvalZero #define NIOCTL_GADDR 0x01 8*10465441SEvalZero #ifndef RT_LWIP_ETH_MTU 9*10465441SEvalZero #define ETHERNET_MTU 1500 10*10465441SEvalZero #else 11*10465441SEvalZero #define ETHERNET_MTU RT_LWIP_ETH_MTU 12*10465441SEvalZero #endif 13*10465441SEvalZero 14*10465441SEvalZero /* eth flag with auto_linkup or phy_linkup */ 15*10465441SEvalZero #define ETHIF_LINK_AUTOUP 0x0000 16*10465441SEvalZero #define ETHIF_LINK_PHYUP 0x0100 17*10465441SEvalZero 18*10465441SEvalZero struct eth_device 19*10465441SEvalZero { 20*10465441SEvalZero /* inherit from rt_device */ 21*10465441SEvalZero struct rt_device parent; 22*10465441SEvalZero 23*10465441SEvalZero /* network interface for lwip */ 24*10465441SEvalZero struct netif *netif; 25*10465441SEvalZero struct rt_semaphore tx_ack; 26*10465441SEvalZero 27*10465441SEvalZero rt_uint16_t flags; 28*10465441SEvalZero rt_uint8_t link_changed; 29*10465441SEvalZero rt_uint8_t link_status; 30*10465441SEvalZero 31*10465441SEvalZero /* eth device interface */ 32*10465441SEvalZero struct pbuf* (*eth_rx)(rt_device_t dev); 33*10465441SEvalZero rt_err_t (*eth_tx)(rt_device_t dev, struct pbuf* p); 34*10465441SEvalZero }; 35*10465441SEvalZero 36*10465441SEvalZero rt_err_t eth_device_ready(struct eth_device* dev); 37*10465441SEvalZero rt_err_t eth_device_init(struct eth_device * dev, char *name); 38*10465441SEvalZero rt_err_t eth_device_init_with_flag(struct eth_device *dev, char *name, rt_uint16_t flag); 39*10465441SEvalZero rt_err_t eth_device_linkchange(struct eth_device* dev, rt_bool_t up); 40*10465441SEvalZero 41*10465441SEvalZero int eth_system_device_init(void); 42*10465441SEvalZero 43*10465441SEvalZero #endif /* __NETIF_ETHERNETIF_H__ */ 44