网络设备支持接口.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络设备支持接口

网络设备支持驱动程序的支持函数名功能函数形成参数描述init_etherdev注册以太网设备truct net_device * init_etherdev (struct net_device * dev, int sizeof_priv)dev为要填充的以太网设备结构,或者要分配一个新的结构时为NULL,sizeof_priv是为这个以太网设备要分配的额外私有结构的大小。用以太网的通用值填充这个结构的域。如果传递过来的dev为NULL,则构造一个新的结构,包括大小为sizeof_priv的私有数据区。强制将这个私有数据区在32字节(不是位)上对齐。dev_add_pack增加数据包处理程序void dev_add_pack (struct packet_type * pt)pt为数据包类型把一个协议处理程序加到网络栈,把参数传递来的packet_type链接到内核链表中。dev_remove_pack删除数据包处理程序void dev_remove_pack (struct packet_type * pt)pt为数据包类型删除由dev_add_pack曾加到内核的协议处理程序。把packet_type 从内核链表中删除,一旦该函数返回,这个结构还能再用。__dev_get_by_name根据名字找设备struct net_device * __dev_get_by_name (const char * name);name为要查找的名字根据名字找到一个接口。必须在RTNL 信号量或dev_base_lock锁的支持下调用。如果找到这个名字,则返回指向设备的指针,如果没有找到,则返回NULL。引用计数器并没有增加,因此调用者必须小心地持有锁。 dev_get_by_name根据名字找设备struct net_device * dev_get_by_name (const char * name)name为要查找的名字根据名字找到一个接口。这个函数可以在任何上下文中调用并持有自己的锁。返回句柄的引用计数增加,调用者必须在其不使用时调用dev_put释放它,如果没有匹配的名字,则返回NULL。dev_get测试设备是否存在int dev_get (const char * name)name为要测试的名字测试名字是否存在。如果找到则返回真。为了确保在测试期间名字不被分配或删除,调用者必须持有rtnl信号量。这个函数主要用来与原来的驱动程序保持兼容。__dev_get_by_index根据索引找设备struct net_device * __dev_get_by_index (int ifindex)ifindex为设备的索引根据索引有哪些信誉好的足球投注网站一个接口。如果没有找到设备,则返回NULL,找到则返回指向设备的指针。该设备的引用计数没有增加,因此调用者必须小心地关注加锁,调用者必须持有RTNL 信号量或dev_base_lock锁。dev_get_by_index根据名字找设备struct net_device * dev_get_by_index (int ifindex)ifindex为设备的索引根据索引有哪些信誉好的足球投注网站一个接口。如果没有找到设备,则返回NULL,找到则返回指向设备的指针。所返回设备的引用计数加1,因此,在用户调用dev_put释放设备之前,返回指针是安全的。dev_alloc_name为设备分配一个名字int dev_alloc_name (struct net_device * dev, const char * name)dev为设备,name 为格式化字符串。传递过来一个格式化字符串,例如ltd,该函数试图找到一个合适的 id。设备较多时这是很低效的。调用者必须在分配名字和增加设备时持有dev_base 或 rtnl锁,以避免重复。返回所分配的单元号或出错返回一个复数。dev_alloc分配一个网络设备和名字struct net_device * dev_alloc (const char * name, int * err)name 为格式化字符串,err为指向错误的指针传递过来一个格式化字符串,例如ltd,函数给该名字分配一个网络设备和空间。如果没有可用内存,则返回NULL。如果分配成功,则名字被分配,指向设备的指针被返回。如果名字分配失败,则返回NULL,错误的原因放在err指向的变量中返回。调用者必须在做这一切时持有dev_base 或 RTNL锁,以避免重复分配名字。netdev_state_change设备改变状态void netdev_state_change (struct net_device * dev)name 为引起通告的设备当一个设备状态改变时调用该函数。dev_load装入一个网络模块void

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档