改写drivers/net/8139too.c(2)
改写drivers/net/8139too.c,虽说是改写,只是对8139too的代码进行了剪裁。 由原来的2600多行,减少到现在的800多行,但基本功能依然保留,这样有兴趣的朋友分析起来较方便。
改写drivers/net/8139too.c(1)
改写drivers/net/8139too.c,虽说是改写,只是对8139too的代码进行了剪裁。 由原来的2600多行,减少到现在的800多行,但基本功能依然保留,这样有兴趣的朋友分析起来较方便
PCI驱动的suspend/resume方法,在何时调用?
问题: 就先只说PC上的。 对应的往/sys/power/state写一个字符串,会进入suspend态, 但是Linux目前就至少支持3个: ACPI的状态 Linux的String 说明 S1, "standby" 很低的延迟就能回到工作状态 S3, "mem", suspend-to-RAM,
网卡驱动注册到PCI总线这一过程的分析(3)
大家好,最近在看网络部分的代码,目前看到了网卡的初始化部分。书上讲到的内容主要是网卡驱动程序对网卡自身的初始化部分,即网卡驱动的probe函数是如何执行的,而很少讲到网卡是如何注册到系统中去的这一部分。
网卡驱动注册到PCI总线这一过程的分析(2)
大家好,最近在看网络部分的代码,目前看到了网卡的初始化部分。书上讲到的内容主要是网卡驱动程序对网卡自身的初始化部分,即网卡驱动的probe函数是如何执行的,而很少讲到网卡是如何注册到系统中去的这一部分。
网卡驱动注册到PCI总线这一过程的分析(1)
大家好,最近在看网络部分的代码,目前看到了网卡的初始化部分。书上讲到的内容主要是网卡驱动程序对网卡自身的初始化部分,即网卡驱动的probe函数是如何执行的,而很少讲到网卡是如何注册到系统中去的这一部分。
说一说:关于数据传送中 address bus 的工作原理
详细说一说导致跨 boundary 的来龙去脉:address bus 与 data bus 的工作原理。 以 Pentium 为例,因为从 Pentium 开始 data bus 是 64 位的,但 address bus 还是 32 位。
MySQL学习资料
昨天闲逛的时候,碰到这么一个地方:免费的编程中文书籍索引由于没有联系到作者,于是只在这里放上一个链接,该贡献里面涉及到了很多优秀的学习编程的资源,也是一样希望可以帮助到大家。既然要学习数据库,就一定要明白什么事数据库(以下来自百度百科解释),通俗的来说,数据库就是用来存储信息的。数据库,简单来说是本
利用udev在/dev下动态生成/移除设备文件
用udev在/dev/下动态生成设备文件,这样用户就不用手工调用mknod了。利用的kernelAPI:class_create:创建classclass_destroy:销毁classclass_device_create:创建deviceclass_device_destroy:
【原】Linux-千兆网卡驱动实现机制浅析(4)
本文的分析重点为网卡驱动中涉及到的重要数据结构,以及发送和接收数据包的实现,对这些实现机制了解后,对于设计和实现驱动程序应该会有帮助,因为该机制本身难度很大,加上作者水平有限,其中的分析结论不能保证完全正确。
【原】Linux-千兆网卡驱动实现机制浅析(3)
根据发送队列数num_tx_queues建立相应的发送缓冲区结构e1000_tx_ring,在该结构中有描述该区域的指向e1000_tx_desc结构的desc,该缓冲区指向的dma总线地址,用于接收硬件传送来的用e1000_buffer结构描述的缓冲块数组buffer_info
【原】Linux-千兆网卡驱动实现机制浅析(2)
本人对网卡驱动没有太多实践经验,此分析纯属学习总结所为,希望各位CU的大牛能及时的提出其中的问题,也欢迎大家积极拍砖,我抛砖引玉,你们抛砖给我吧^_^。我相信这其中的分析一定有不太正确的地方,希望各位能够不吝赐教。
【原】Linux-千兆网卡驱动实现机制浅析(1)
本人对网卡驱动没有太多实践经验,此分析纯属学习总结所为,希望各位CU的大牛能及时的提出其中的问题,也欢迎大家积极拍砖,我抛砖引玉,你们抛砖给我吧^_^。我相信这其中的分析一定有不太正确的地方,希望各位能够不吝赐教。
RTL8139网卡驱动程序分析[转]
本文以Linux内核中8139网卡驱动为例,对驱动程序的工作过程进行详细的分析,为初学者拨开迷雾,走出雾里看花的迷茫。本文虽然以Linux驱动为例,但是技术总是相通的,为了给Windows驱动初学者同样的启发,我有意的借用了许多Windows驱动中的名词,同时顺便略述了Windows驱动中的一些容易让初学者感到迷惑的概念。
个人对kobject的一点研究
在LINUX中最让人不解的大概就是/sys下面的内容了下面首先让我们来创建一个简单的platform设备,并从这个设备的视角进行深入,在此篇文章的深入过程中,我们只看kobeject的模型我所使用的内核版本号为2.6.26,操作系统的内核版本号为2.6.27-7,暂未发现2.6.27-7与2.6.2
请教个网卡驱动的问题
问题:网卡的驱动程序到底是做什么的?如果网卡没有驱动会怎样?不接收数据包?还是因为没有驱动,而只接收数据包但是不做处理?解答:建议找一个网卡驱动的源代码看一下,或者Google网卡驱动的功能。如果没有网卡驱动,系统就不会将其是别为网卡,那么就算有数据包可以到达网卡的物理接口
LINUX下USB1.1设备学习小记(6)_hid与input子系统(3)
现在回到input_attach_handler中error=handler->connect(handler,dev,id);现在知道handler->connect是啥了吧,就是mousedev_connectmousedev_connect在/drivers/input/mouse
LINUX下USB1.1设备学习小记(6)_hid与input子系统(2)
走完之前的程序后的数据结构注意,之后会把local中的数据清空好,到下一组为0x09,0x01这是一个局域项目,重新向局域结构中添加项目下一个组为0xa1,0x00这是一个主项目,用于物理集合收集的开始添加完成后的数据结构又把局域结构中的数据清零到下一组,为0x05,0x09这是一个全局项目,重设用
LINUX下USB1.1设备学习小记(6)_hid与input子系统(1)
现在终于开始匹配设备的接口驱动了目标当然是hid,当然在了解驱动初始化过程之前,让我们先看看一下hid协议我对hid协议的理解是建立在鼠标上的,所以如果有理解不当的地方,请务必请大家指出我们先来看鼠标的结构,鼠标有左键,右键,中键,滚轮,X轴和Y轴这6个量其中左键,右键和中键的点击可以用0和1两个数
LINUX下USB1.1设备学习小记(5)_uhci与设备(1)
现在开始uhci与设备的通信分析先看分析枚举过程,再分析数据通信USB总线上设备的枚举:1.当设备插入时,设备的上拉电阻使信号线的电位升高,这时候根集线器检测到设备的插入2.主机发送Get_status到根集线器来获得当前端口的状态3.主机发送Set_Feature,让根集线器复位端口,使得端口上的