S3C2440驱动简析——DM9000网卡驱动(4)

来源:互联网 发布:网络机房维保 编辑:程序博客网 时间:2024/05/01 03:34

     本文我们主要来分析.probe的第一个操作函数组dm9000_netdev_ops(一个结构体),贴出该结构体代码如下

这里定义了操作net_device的一些重要操作,分别介绍如下:

 

1.dm9000_open

 

2.dm9000_stop

其工作与open函数基本是相对应的,主要是资源的释放和停止设备发送队列。

 

3.dm9000_start_xmit

主要功能是将从上层传入的数据发送到media中。

 

4.dm9000_timeout

看门狗被触发后调用此函数,主要执行设备的重启动作。

 

5.dm9000_hash_table

核心函数dm9000_hash_table_unlocked(dev)完成设置组播地址的功能。

 

6.dm9000_ioctl

核心函数 generic_mii_ioctl(&dm->mii, if_mii(req), cmd, NULL)代码如下

一个非常熟悉的switch case 结构函数,具体完成的动作这里不细讲啦~

 

7.eth_change_mtu

修改MTU值

 

8.eth_validate_addr

判断地址是否全0xff或全0,非法

 

9.eth_mac_addr

把addr的sa_data成员绑定到设备地址

 

10.dm9000_poll_controller

函数dm9000_interrupt如下

 

 

到此为止,已经粗略的介绍完dm9000_netdev_ops的各个重要的操作。本博文应该是这个系列的倒数第二篇了,最后一篇用来分析dm9000_ethtod_ops的操作,敬请关注~

 

 

 

本系列课程链接地址

DM9000网卡驱动(1)http://blog.csdn.net/jarvis_xian/archive/2011/06/10/6537446.aspx
DM9000网卡驱动(2)http://blog.csdn.net/jarvis_xian/archive/2011/06/12/6539931.aspx
DM9000网卡驱动(3)http://blog.csdn.net/jarvis_xian/archive/2011/06/13/6542411.aspx
DM9000网卡驱动(4)http://blog.csdn.net/jarvis_xian/archive/2011/06/15/6545109.aspx
DM9000网卡驱动(5)http://blog.csdn.net/jarvis_xian/archive/2011/06/15/6547203.aspx

原创粉丝点击