一、以太网设备初始化后接收数据包的一个调用函数的总流程图在第78页
输入过程:leintr函数—>leread函数—>ether_input函数—>根据不同的协议进行选择(如OSI协议、TCP/IP协议和ARP协议),进入相应的队列
- 输出过程:上层协议(我们关注TCP/IP协议)使用ifnet结构中的if_output函数指针(该指针对于TCP/IP协议指向ether_output函数)—>将要发送的帧放置到相应接口的发送队列中—>调用lestart函数发送帧
二、关于ioctl系统调用
- 1.ioctl系统调用他可以访问一个设备的标准系统调用所不支持的特性(我觉得这个系统调用再需要看一下UNIX环境高级编程里面所讲的东西)
- 2.ioctl系统调用参数:第一个是设备号,第二个是命令,第三个是基于第二个命令所填的参数(是一些结构体),然后ioctl系统调用会根据第二个参数找相应的函数去进行操作。