最近几天都在看关于网络驱动方面的东西,今天继续看,顺便记录下来。

每一个接口由一个net_device结构体来描述。<linux/netdevice.h>里面定义。

分配函数为:struct net_device *alloc_netdev(int sizeof_priv,const char *name,void (*setup)(struct net_device*));其中,sizeof_priv是一个设备的私有数据区间长度,name就是一个设备的名字,setup是一个函数指针,指向的是初始化函数的地址。

在setup函数里面,一般都要对net_device进行初始化操作。net_device这个结构体里面有很多函数,这些函数分别被赋给net_device里面的函数指针,在到达某种情况的时候触发。这些函数主要包括hard_start_xmit,这个是发送函数,do_ioctl,这个是给设备传送命令的函数,get_stats是返回状态的函数。主要是通过对hard_start_xmit函数的编写来达到发送包的目的。

其次是int register_netdev(struct net_device* dev),是注册函数,在初始化结束之后进行操作。与此相对的,如果在结束的时候,就应该调用unregister_netdev(struct net_device* dev)来注销原来注册的设备。

明天先看看上次的那个GNU make,然后看看驱动编写的那本书,然后在看看今天看到的那个人的代码,今天这个人的代码好像只包含了一种协议,所以比周学长的代码要短,但是他也考虑了很多种情况,所以总的来说还是很多的,明天好好看看他写的发送函数,如果有精力可以深入去看看这个发送函数调用的函数,看看底层是怎么处理的。

转载于:https://www.cnblogs.com/wudanzy/archive/2010/03/24/1694262.html

2010-03-24 网络驱动相关推荐

  1. 达人眼中的WINCE网络驱动

    达人眼中的WINCE网络驱动 介绍 实际上在WinCE上开发网络驱动,比如设计一个NIC驱动, 大多数情况,是从XP移植NDIS Miniport驱动(小端口驱动)到WinCE.什么是ndis?Ndi ...

  2. 2010年下半年网络工程师考试上午试卷与参考答案(3)

    全国计算机技术与软件专业技术资格(水平)考试 2010年下半年 网络工程师 上午试卷 参考答案 ● 网络172.21.136.0/24和172.21.143.0/24汇聚后的地址是 (51) . (5 ...

  3. WinCE的网络驱动实现原理

    1.WinCE的网络通信架构 WinCE的网络通信架构如图1所示,WinCE的网络通信架构中一个重要的角色是网络结构规范(NetworkDriver Interface Specification,N ...

  4. Linux TUN/TAP 虚拟网卡编程入门https://backreference.org/2010/03/26/tuntap-interface-tutorial/...

    原文: https://backreference.org/2010/03/26/tuntap-interface-tutorial/ (为防和谐,下文中p=屁) Tun/Tap interface ...

  5. 网络驱动之net_device结构体

    在Linux系统中,网络设备都被抽象为struct net_device结构体.它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.3 ...

  6. linux网络驱动lookback,Linux lookback驱动分析

    Linux的网络驱动中,lookback 驱动算是最为简单的.本次分析的程序来自 Linux-2.6.32.68 源码,其中 lookback.c 驱动程序位于 /drives/net/ 目录下. 普 ...

  7. linux kernel网络驱动

    Linux Device Driver书籍(17) http://linux.chinaunix.net/techdoc/develop/2008/09/28/1035250.shtml 第 17 章 ...

  8. Linux 网络驱动-内核网络驱动框架(二)

    net_device 结构体 Linux 内核使用 net_device 结构体表示一个具体的网络设备,net_device 是整个网络驱动的 灵魂.网络驱动的核心就是初始化 net_device 结 ...

  9. 2010年上半年网络管理员上午试卷参考答案与解析

    2010年上半年网络管理员上午试卷参考答案与解析 学生成绩表如下表所示.若要计算学生各科成绩.总分和平均分各项的最高分,可先在C10单元格中输入(1) ,并(2) 拖动填充柄至H10单元格,则可自动算 ...

  10. Linux 网络驱动实验(有线)

    目录 嵌入式网络简介 嵌入式下的网络硬件接口 MII/RMII 接口 MDIO 接口 RJ45 接口 I.MX6ULL ENET 接口简介 PHY 芯片详解 PHY 基础知识简介 LAN8720A 详 ...

最新文章

  1. 用matlab参数法拟合,MATLAB|曲线拟合基本介绍
  2. 欢迎使用CSDN-markdown编辑器2131
  3. C#委托、事件学习之(二)——简单按钮委托事件
  4. 保证一致性吗_RabbitMQ消息一致性:重要消息,请设置持久化
  5. JAVA中url的特殊字符处理及url转码解码
  6. 红橙Darren视频笔记 RecyclerView基本使用
  7. Css学习总结(1)——20个很有用的CSS技巧
  8. python中seek(10、1)_Python中index()和seek()的用法(详解)
  9. 算法工程师当前选哪个方向好?1,计算机视觉;2,自然语言处理;3,风控;4,推荐系统?...
  10. 阶段3 3.SpringMVC·_05.文件上传_2 文件上传之传统方式上传代码回顾
  11. 虚拟内存设置误区及正确方法
  12. vue 时间方法(yyyy-mmmm-dddd hh:mm:ss)
  13. warning: control reaches end of non-void function [-Wreturn-type]
  14. ctf GetFlag
  15. 远程控制计算机显示为什么不能满屏,win7系统连接远程桌面却不能全屏显示的解决方法...
  16. MySQL基础必会,简单易懂
  17. php while 无限循环,php - 在PAMI中发起呼叫-无限while循环 - 堆栈内存溢出
  18. Ubuntu切换中文语言
  19. Python日常(13):字符串的格式化输出(format方法和%输出)
  20. 2023年五一数学建模 B 题过程与结果

热门文章

  1. 最大似然估计和最小二乘法 含代码
  2. 27岁学前端开发,3年前端开发工资待遇
  3. 大写汉字转阿拉伯数字c语言,把中文汉字大写数字 转换成 阿拉伯数字
  4. lwj_C#_建立一个数学MathTool类包含的方法
  5. linux系统清理磁盘空间
  6. 必须指定计算机名称,指定网络名不再可用处理方法,指定网络
  7. win10分辨率不能调整_win10无法调整分辨率显示灰色的解决方法
  8. python列表元素分割_在Python中分隔列表元素
  9. R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)
  10. markdown删除代码空白行