2010-03-24 网络驱动
最近几天都在看关于网络驱动方面的东西,今天继续看,顺便记录下来。
每一个接口由一个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 网络驱动相关推荐
- 达人眼中的WINCE网络驱动
达人眼中的WINCE网络驱动 介绍 实际上在WinCE上开发网络驱动,比如设计一个NIC驱动, 大多数情况,是从XP移植NDIS Miniport驱动(小端口驱动)到WinCE.什么是ndis?Ndi ...
- 2010年下半年网络工程师考试上午试卷与参考答案(3)
全国计算机技术与软件专业技术资格(水平)考试 2010年下半年 网络工程师 上午试卷 参考答案 ● 网络172.21.136.0/24和172.21.143.0/24汇聚后的地址是 (51) . (5 ...
- WinCE的网络驱动实现原理
1.WinCE的网络通信架构 WinCE的网络通信架构如图1所示,WinCE的网络通信架构中一个重要的角色是网络结构规范(NetworkDriver Interface Specification,N ...
- 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 ...
- 网络驱动之net_device结构体
在Linux系统中,网络设备都被抽象为struct net_device结构体.它是网络设备硬件与上层协议之间联系的接口,了解它对编写网络驱动程序非常有益,所以本文将着手简要介绍linux-2.6.3 ...
- linux网络驱动lookback,Linux lookback驱动分析
Linux的网络驱动中,lookback 驱动算是最为简单的.本次分析的程序来自 Linux-2.6.32.68 源码,其中 lookback.c 驱动程序位于 /drives/net/ 目录下. 普 ...
- linux kernel网络驱动
Linux Device Driver书籍(17) http://linux.chinaunix.net/techdoc/develop/2008/09/28/1035250.shtml 第 17 章 ...
- Linux 网络驱动-内核网络驱动框架(二)
net_device 结构体 Linux 内核使用 net_device 结构体表示一个具体的网络设备,net_device 是整个网络驱动的 灵魂.网络驱动的核心就是初始化 net_device 结 ...
- 2010年上半年网络管理员上午试卷参考答案与解析
2010年上半年网络管理员上午试卷参考答案与解析 学生成绩表如下表所示.若要计算学生各科成绩.总分和平均分各项的最高分,可先在C10单元格中输入(1) ,并(2) 拖动填充柄至H10单元格,则可自动算 ...
- Linux 网络驱动实验(有线)
目录 嵌入式网络简介 嵌入式下的网络硬件接口 MII/RMII 接口 MDIO 接口 RJ45 接口 I.MX6ULL ENET 接口简介 PHY 芯片详解 PHY 基础知识简介 LAN8720A 详 ...
最新文章
- 用matlab参数法拟合,MATLAB|曲线拟合基本介绍
- 欢迎使用CSDN-markdown编辑器2131
- C#委托、事件学习之(二)——简单按钮委托事件
- 保证一致性吗_RabbitMQ消息一致性:重要消息,请设置持久化
- JAVA中url的特殊字符处理及url转码解码
- 红橙Darren视频笔记 RecyclerView基本使用
- Css学习总结(1)——20个很有用的CSS技巧
- python中seek(10、1)_Python中index()和seek()的用法(详解)
- 算法工程师当前选哪个方向好?1,计算机视觉;2,自然语言处理;3,风控;4,推荐系统?...
- 阶段3 3.SpringMVC·_05.文件上传_2 文件上传之传统方式上传代码回顾
- 虚拟内存设置误区及正确方法
- vue 时间方法(yyyy-mmmm-dddd hh:mm:ss)
- warning: control reaches end of non-void function [-Wreturn-type]
- ctf GetFlag
- 远程控制计算机显示为什么不能满屏,win7系统连接远程桌面却不能全屏显示的解决方法...
- MySQL基础必会,简单易懂
- php while 无限循环,php - 在PAMI中发起呼叫-无限while循环 - 堆栈内存溢出
- Ubuntu切换中文语言
- Python日常(13):字符串的格式化输出(format方法和%输出)
- 2023年五一数学建模 B 题过程与结果
热门文章
- 最大似然估计和最小二乘法 含代码
- 27岁学前端开发,3年前端开发工资待遇
- 大写汉字转阿拉伯数字c语言,把中文汉字大写数字 转换成 阿拉伯数字
- lwj_C#_建立一个数学MathTool类包含的方法
- linux系统清理磁盘空间
- 必须指定计算机名称,指定网络名不再可用处理方法,指定网络
- win10分辨率不能调整_win10无法调整分辨率显示灰色的解决方法
- python列表元素分割_在Python中分隔列表元素
- R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)
- markdown删除代码空白行