和所有其他模块一样,函数init_module是cs8900的入口:
module_init (cs8900_init);
module_exit (cs8900_cleanup);
cs8900_init函数填充net_device结构体。net_device是网络驱动中最为重要的一个结构,需要认真阅读,其原型在 include\linux\netdevice.h中。为了填充如此复杂的结构,内核提供了ether_setup函数作为辅助。关于ether_setup函数,你只要知道它的功能就可以了。当然,ether_setup不是万能的,你还要手工完成类似如下一些内容:
ndev->open = cs8900_start;
ndev->stop = cs8900_stop;
ndev->hard_start_xmit = cs8900_send_start;
ndev->get_stats = cs8900_get_stats;
ndev->set_multicast_list = cs8900_set_receive_mode;
ndev->tx_timeout = cs8900_transmit_timeout;
而下面语句的含义也非常明确:
cs8900_dev->init = cs8900_probe
cs8900_probe是初始化函数(Driver initialization routines),主要完成一些初始化操作,我们在下一章中介绍。cs8900_init中使用了另外一个函数还没有说-->alloc_etherdev。alloc_etherdev是alloc_netdev的封装函数,它负责在内核空间为 net_device结构体分配内存(kmalloc)。alloc_etherdev的原型在include\linux\etherdevice.h中。
在函数最后,通过register_netdev完成设备注册。register_netdev函数原型在net\core\dev.c中,但是如果你就是为了写驱动,你可以不往下看了。
一句话总结:cs8900_init在使用各种手段填充了net_device结构体后,通过register_netdev向系统注册了一个网络设备。
分享到:
相关推荐
CS8900A网卡驱动程序分析 CS8900A网卡驱动程序分析 CS8900A网卡驱动程序分析 CS8900A网卡驱动程序分析 CS8900A网卡驱动程序分析
cs8900网卡驱动源码,以及用ARM-LINXU-GCC编译出来的文件
cs8900a网卡驱动分析,我们老师讲的,不错,比较适合初学网卡驱动的同学!
移植到linux2.6内核的cs8900网卡驱动,一个可以移植到linux2.6内核的网卡驱动,已经经过移植到s3c2410的开发板上
cs8900a linux驱动程序
网卡驱动采用3.4.2内核里提供的cs89x0.c 移植到fs2410中
cs8900 驱动示例(cs8900的配置过程和发送过程)基于s3c2440
linux 下的网络芯片CS8900的驱动源码,大家一起学习!
网卡驱动移植网卡驱动移植网卡驱动移植网卡驱动移植网卡驱动移植
编译环境arm-linux-gcc 分别有查询与中断两种工作方式
Linux2.6.30上移植好的基于S3C2440的CS8900网卡驱动,这份网卡驱动源码在扬创utu2440-F开发板已验证通过! 如果有什么问题,可以参考我CSDN上的博客:http://blog.csdn.net/reille/上相关文章
好不容易弄出来的,上传了一次 居然 不见了! 再次补上。很辛苦的。网上很难找到这两个驱动文件
CS8900A网卡驱动cs8900.c和cs8900.h
在嵌入式linux2.4.18内核中实现CS8900A网卡驱动,李会艳,胡荣强,本文首先论述了在嵌入式系统中增加以太网接口的两种方法;接着给出了微处理器S3C2410X与网卡CS8900A接线图;然后根据该接线图论述了将
(国嵌)Cs8900a网卡驱动分析;中文翻译,对英文不好的开发者很有帮助。
本文主要分析基于优龙FS2410开发板中CS8900A网卡芯片在u-boot-1.3.4中的使用流程及方法。涵盖硬件接口电路的简单分析、CS8900A I/O模式分析、u-boot-1.3.4中的CS8900A驱动主要代码注释、及tftp/ping命令在u-boot执行...
直接在/drivers/net下的cs89x0的基础上修改,里面的源码已经是我修改过了的,经过实验已经可以 用了!
943602CS网卡驱动,亲测可用,苹果官方驱动提取,保证能用,解压直接安装就可以
开发板:成都博睿科技 MC2410.(三星的 s3c2410芯片, 网卡芯片cs8900a) cs8900.h, cs8900.c 这两个文件我在网上搜索很久都没有结果。最后在一个帖子里面别人贴出来了,所以我把代码copy下来自己建立cs8900.h cs...
苹果无线网卡驱动,蓝牙驱动,型号BCM94360和BCM943602CS Apple苹果电脑Broadcom无线网卡驱动最新版For Win7-64/Win8-64/Win8.1-64(2014年5月30日新增)苹果的MacBook Air/MacBook Pro/iMac等电脑装64位Win7/Win8/Win...