linux下PCI设备驱动程序之注册详解

本文详细阐述了Linux环境下PCI设备驱动的注册和解注册过程。通过pci_device_id结构体来标识设备,包括vendor和device字段表示设备编号和名称,以及class和class_mask字段确定设备类别。驱动的注册通过pci_register_driver函数实现,而设备的解注册则涉及移除文件设备、删除驱动及从链表中删除设备等操作。
摘要由CSDN通过智能技术生成


一 识别方式:

  天朝为了方便每个人的管理,搞了一套身份识别的玩意(档案和身份证)。kernel本省就像一个社会,每个进来的设备必须要有它独特的名字和一些档案。

这个工作对PCI来说,它是由pci_device_id这个结构体来进行身份信息保存的:

 17 struct pci_device_id {
 18     __u32 vendor, device;       /* Vendor and device ID or PCI_ANY_ID*/
 19     __u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */
 20     __u32 class, class_mask;    /* (class,subclass,prog-if) triplet */
 21     kernel_ulong_t driver_data; /* Data private to the driver */
 22 };


针对一些英文不好的同学,还是有必要对上面的信息进行翻译一下。vendor,device 分别代表设备商给的设备编号(身份证号)和该设备的名字(姓名)

subverdor,subdevice 分别对应的是该设备是否有别名,绝大多数设备是不需要的。class,class_mask分别对应的是该pci设备属于哪个设备:比如说,属于网络,块设备。

driver_data是属于该设备的私有数据,每个设备都不一样。

二 PCI设备注册和解注册:

   人有生老病死,同样,每个驱动也有他们的宿命:出生->生活->死亡(任何中形式࿰

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值