大虾门,帮我分析下./driver/net/korina.c下面的一段代码 RX中断申请: ret = request_irq(lp->rx_irq, &korina_rx_dma_interrupt, IRQF_SHARED | IRQF_DISABLED, "Korina ethernet Rx", dev); Rx中断处理: /* Ethernet Rx DMA interrupt */ static irqreturn_t korina_rx_dma_interrupt(int irq, void *dev_id) { struct net_device *dev = dev_id; struct korina_private *lp = netdev_priv(...
by linuxLife12345 - 内核源码 - 2012-06-19 21:16:40 阅读(1225) 回复(1)
项目介绍: 该项目为美国网络产品开发项目,产品对象主要是电信公司,银行以及大型数据中心,硬件平台为x86刀片服务器,操作系统是RedHat linux。 职位:linux内核/网络驱动开发工程师 地点:Guangzhou 职位职责: 1)linux驱动及应用开发 2)linux Kernel优化 3)网络协议开发与优化 4)作为内核组核心开发人员,指导组员分析疑难问题并提出解决方案 职位要求: 1) 本科以上学历,计算机相关专业; 2) 熟悉linux内核...
网络设备驱动相比字符型设备的驱动要复杂一些,除了总体上驱动的框架有一些相似外,有很多地方都是不同,但网络设备驱动有一个很大的特点就是有固定的框架可以遵循,具体的框架会在后边详细的叙述,这里主要分析网络设备驱动的结构,和整个tcp/ip网络结构一样,整个网络设备驱动也是一个分层的结构。具体如下: 1.网络协议接口层 在网络协议接口层,只提供了两个抽象函数dev_queue_xmit()与netif_rx(),之所以称之为抽象函数,...
网络设备驱动相比字符型设备的驱动要复杂一些,除了总体上驱动的框架有一些相似外,有很多地方都是不同,但网络设备驱动有一个很大的特点就是有固定的框架可以遵循,具体的框架会在后边详细的叙述,这里主要分析网络设备驱动的结构,和整个tcp/ip网络结构一样,整个网络设备驱动也是一个分层的结构。具体如下: 1.网络协议接口层 在网络协议接口层,只提供了两个抽象函数dev_queue_xmit()与netif_rx(),之所以称之为抽象函数...
一.linux系统设备驱动程序概述 1.1 linux设备驱动程序分类 linux 设备驱动程序在linux的内核源代码中占有很大的比例,源代码的长度日益增加,主要是驱动程序的增加。在linux内核的不断升级过程中,驱动程序的结构还是相对稳定。在2.0.xx到2.2.xx的变动里,驱动程序的编写做了一些改变,但是从2.0.xx的驱动到2.2.xx的移植只需做少量的工作。 linux系统的设备分为字符设备(char device),块设备(block device)和网络设备(network dev...
一.linux系统设备驱动程序概述 1.1 linux设备驱动程序分类 linux 设备驱动程序在linux的内核源代码中占有很大的比例,源代码的长度日益增加,主要是驱动程序的增加。在linux内核的不断升级过程中,驱动程序的结构还是相对稳定。在2.0.xx到2.2.xx的变动里,驱动程序的编写做了一些改变,但是从2.0.xx的驱动到2.2.xx的移植只需做少量的工作。 linux系统的设备分为字符设备(char device),块设备(block device)和网络设备(network dev...
在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且同时注册和初始化该网络设备。 如果网络设备(包括wireless)是PCMCIA规范的,则先是...
一 驱动程序注册 驱动程序注册,其实就是驱动程序的初始化,其中最重要的是建立各个数据结构的连接关系。如图所示: 首先,系统在初始时枚举PCI设备时,已经根据PCI设备建立起了对应得pci_dev结构,并挂在相应的链表中。其中pci_dev结构中的dev指向一个device结构。注册的时候主要是为pci_dev结构找相应的driver结构。 定义pci_driver结构 static struct pci_driver pcnet32_driver = { .n...
linux操作系统网络驱动程序编写 一.linux系统设备驱动程序概述 1.1 linux设备驱动程序分类 1.2 编写驱动程序的一些基本概念 二.linux系统网络设备驱动程序 2.1 网络驱动程序的结构 2.2 网络驱动程序的基本方法 2.3 网络驱动程序中用到的数据结构 2.4 常用的系统支持 三.编写linux网络驱动程序中可能遇到的问题 3.1 中断共享 3.2 硬件发送忙时的处理 3.3 流量控制(flow control) 3.4 调试 四.进一步的阅读 五.杂项 嵌迷网( www.emb...