多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
既然已经了解了与网卡有关的底层驱动函数,那么我们先看看ethernetif.c文件到底是怎么样子的,又是怎么将网卡与LwIP内核连接在一起。 首先在ethernetif.c文件的开始时,就定义了一个ethernetif数据结构,具体见代码清单 4‑6。 ``` 1 struct ethernetif 2 { 3 struct eth_addr *ethaddr; 4 /* Add whatever per-interface state that is needed here. */ 5 }; ``` ethernetif数据结构用来描述底层硬件设备的一些私有信息,如MAC地址等,该结构体唯一不可或缺的是MAC地址,它是LwIP用于相应ARP查询的核心数据。用户可以对该结构进行添加其他的网卡描述信息,如果没有特殊需要,就不用添加其他成员数据,该数据结构在初始化的时候,通过netif的state成员变量将这些硬件的私有信息传递给上层。