没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Linux2.6 内核 PCI 驱动程序开发
一, PCI 相关数据结构说明
1.1 struct pci_driver
这个数据结构在文件/linux/pci.h 里,这是 Linux 内核版本 2.4 之后为新型的 PCI 设备驱
动程序所添加的,其中最主要的是用于识别设备的 id_table 结构,以及用于检测设备的函
数 probe( )和卸载设备的函数 remove( )。
struct pci_driver {
struct list_head node;
char *name;
const struct pci_device_id *id_table;
int (*probe) (struct pci_dev *dev, const struct pci_device_id *id);
void (*remove) (struct pci_dev *dev);
int (*save_state) (struct pci_dev *dev, u32 state);
int (*suspend)(struct pci_dev *dev, u32 state);
int (*resume) (struct pci_dev *dev);
int (*enable_wake) (struct pci_dev *dev, u32 state, int enable);
};
为 创 建 一 个 正 确 的 struct pci_driver 结 构 , 只 有 4 个 字 段 需 要 被 初 始
化:name,id_table,probe 和 remove。
其 中 id_table 初 始 化 可 以 用 到 宏
PCI_DEVICE(VENDOR_ID,DEVICE_ID),VENDOR_ID 和 DEVICE_ID 分别为设备和厂商
编号,由板卡生产厂家指定。
Static const struct pci_device_id mypci[] =
{
{
PCI_DEVICE(VENDOR_ID,DEVICE_ID)
},
{}
};
1.2 pci_dev
这个数据结构也在文件 include/linux/pci.h 里,它详细描述了一个 PCI 设备几乎所有的
硬件信息,包括厂商 ID、设备 ID、各种资源等。可以根据需要使用其中的数据成员。
struct pci_dev {
struct list_head global_list;
struct list_head bus_list;
struct pci_bus *bus;
struct pci_bus *subordinate;
void *sysdata;
struct proc_dir_entry *procent;
unsigned int devfn;
unsigned short vendor;
unsigned short device;
1
资源评论
- xiooozzz2014-08-13我也认为一般般,实用性不大
- inurlcn2012-07-11一般般的资源 ,推荐看linux设备驱动程序 开发完全手册
zdd198410
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功