标准PCI设备都有一个配置寄存器,用来存储各种参数;

 /* pci设备配置寄存器 */
struct pci_device_id {
/* 厂商id,设备id */
__u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/
/* 子系统厂商id,子系统设备id */
__u32 subvendor, subdevice; /* Subsystem ID's or PCI_ANY_ID */
/* 类,类掩码,使驱动程序可以指定支持某一种pci设备 */
__u32 class, class_mask; /* (class,subclass,prog-if) triplet */
/* 保存于设备相关的私有信息 */
kernel_ulong_t driver_data; /* Data private to the driver */
};

以e100为例,其支持多种设备,不同设备的pci_device_id初始化后存放在e100_id_table[]数组中;

e100_driver操作中的id_table字段会引用该数组;

 /* e100的pci设备信息结构列表 */
#define INTEL_8255X_ETHERNET_DEVICE(device_id, ich) {\
PCI_VENDOR_ID_INTEL, device_id, PCI_ANY_ID, PCI_ANY_ID, \
PCI_CLASS_NETWORK_ETHERNET << , 0xFFFF00, ich }
static const struct pci_device_id e100_id_table[] = {
INTEL_8255X_ETHERNET_DEVICE(0x1029, ),
INTEL_8255X_ETHERNET_DEVICE(0x1030, ),
INTEL_8255X_ETHERNET_DEVICE(0x1031, ),
INTEL_8255X_ETHERNET_DEVICE(0x1032, ),
INTEL_8255X_ETHERNET_DEVICE(0x1033, ),
INTEL_8255X_ETHERNET_DEVICE(0x1034, ),
INTEL_8255X_ETHERNET_DEVICE(0x1038, ),
INTEL_8255X_ETHERNET_DEVICE(0x1039, ),
INTEL_8255X_ETHERNET_DEVICE(0x103A, ),
INTEL_8255X_ETHERNET_DEVICE(0x103B, ),
INTEL_8255X_ETHERNET_DEVICE(0x103C, ),
INTEL_8255X_ETHERNET_DEVICE(0x103D, ),
INTEL_8255X_ETHERNET_DEVICE(0x103E, ),
INTEL_8255X_ETHERNET_DEVICE(0x1050, ),
INTEL_8255X_ETHERNET_DEVICE(0x1051, ),
INTEL_8255X_ETHERNET_DEVICE(0x1052, ),
INTEL_8255X_ETHERNET_DEVICE(0x1053, ),
INTEL_8255X_ETHERNET_DEVICE(0x1054, ),
INTEL_8255X_ETHERNET_DEVICE(0x1055, ),
INTEL_8255X_ETHERNET_DEVICE(0x1056, ),
INTEL_8255X_ETHERNET_DEVICE(0x1057, ),
INTEL_8255X_ETHERNET_DEVICE(0x1059, ),
INTEL_8255X_ETHERNET_DEVICE(0x1064, ),
INTEL_8255X_ETHERNET_DEVICE(0x1065, ),
INTEL_8255X_ETHERNET_DEVICE(0x1066, ),
INTEL_8255X_ETHERNET_DEVICE(0x1067, ),
INTEL_8255X_ETHERNET_DEVICE(0x1068, ),
INTEL_8255X_ETHERNET_DEVICE(0x1069, ),
INTEL_8255X_ETHERNET_DEVICE(0x106A, ),
INTEL_8255X_ETHERNET_DEVICE(0x106B, ),
INTEL_8255X_ETHERNET_DEVICE(0x1091, ),
INTEL_8255X_ETHERNET_DEVICE(0x1092, ),
INTEL_8255X_ETHERNET_DEVICE(0x1093, ),
INTEL_8255X_ETHERNET_DEVICE(0x1094, ),
INTEL_8255X_ETHERNET_DEVICE(0x1095, ),
INTEL_8255X_ETHERNET_DEVICE(0x10fe, ),
INTEL_8255X_ETHERNET_DEVICE(0x1209, ),
INTEL_8255X_ETHERNET_DEVICE(0x1229, ),
INTEL_8255X_ETHERNET_DEVICE(0x2449, ),
INTEL_8255X_ETHERNET_DEVICE(0x2459, ),
INTEL_8255X_ETHERNET_DEVICE(0x245D, ),
INTEL_8255X_ETHERNET_DEVICE(0x27DC, ),
{ , }
};
MODULE_DEVICE_TABLE(pci, e100_id_table);

网络设备之pci_device_id的更多相关文章

  1. OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)

    上一节我们启用了 Open vSwitch,本节将查看当前的网络状态并介绍 Open vSwitch 涉及的各种网络设备 初始网络状态 查看一下当前的网络状态. 控制节点 ifconfig 显示控制节 ...

  2. linux网络设备驱动程序

    4.linux网络设备驱动程序体系结构 -------------------------------------- | 数据包发送 | 数据包接收 | ----->网络协议接口层 | dev_ ...

  3. 谢欣伦 - OpenDev原创教程 - 网络设备查找类CxNetworkHostFind & CxNetworkAdapterFind

    这是一个精练的网络设备查找类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxNetworkHostFind的使用如下: void ...

  4. 从veth看虚拟网络设备的qdisc

    背景 前段时间在测试docker的网络性能的时候,发现了一个veth的性能问题,后来给docker官方提交了一个PR,参考set tx_queuelen to 0 when create veth d ...

  5. 用OSSIM轻松分析网络设备日志

    用OSSIM轻松分析网络设备日志 基于插件的日志收集与处理模式,使得用户可以轻松的利用OSSIM来分析异构网络环境下的各种网络设备日志,下面展示一些硬件设备日志的实例,我们在RAW LOG界面里,搜索 ...

  6. xamarin误删vEthernet(internal Ethernet Port Windows Phone Emulator) 网络设备的处理。

    昨天一不小心误删了xamarin 开发环境下的虚拟设备网络设备.名称为:vEthernet(internal Ethernet Port Windows Phone Emulator).导致原来能正确 ...

  7. CCNA网络工程师学习进程(4)网络设备的基本配置和详细介绍

        网络设备(路由器.交换机和防火墙等)与计算机一样需要操作系统.网络设备采用专用的操作系统,统称为IOS(Internetwork Operating System,网络操作系统).     ( ...

  8. CCNA网络工程师学习进程(2)基本的网络设备

      在组网技术中用到的设备有中继器(Repeater).集线器(Hub).网桥(Bridge).交换机(Switch).路由器(Router).分别工作在OSI参考模型中的物理层.数据链路层和网络层. ...

  9. Ansible用于网络设备管理 part 0 安装和登录网络设备

    真实在是累了,但是又怕第二天早上又忘掉,在这先大概写写. 安装: http://www.tecmint.com/install-and-configure-ansible-automation-too ...

随机推荐

  1. js 事件阻止传播方法,准确定位事件源

    1事件冒泡 在目标元素获得机会处理事件后,事件模型检查目标元素的父元素,看是否为同类型事件建立了处理程序.如果是,则也调用父元素的处理程序.在这之后,再检查其父元素,然后父元素,然后父元素...持续不 ...

  2. 【其他】UTF-8带签名与不带签名

    在 Visual Web Developer 另存为文件时,有编码选项,其中有: Unicode (UTF-8 with signature) - Codepage 65001 Unicode (UT ...

  3. BZOJ4310 跳蚤(后缀数组+二分答案)

    注意到答案一定是原串的子串,于是考虑造出SA,二分答案是第几小的子串.第k小子串很容易在SA上求出.之后计算使他成为最大子串至少要在几个位置切割,对每个字典序比答案大的后缀,找到所有合法切割位置(求l ...

  4. Square Root of Permutation - CF612E

    Description A permutation of length n is an array containing each integer from 1 to n exactly once. ...

  5. POJ3261:Milk Patterns——题解

    http://poj.org/problem?id=3261 给一个序列,求至少出现 k 次的最长重复子串,这 k 个子串可以重叠. 论文题+傻逼题. 上一道题(POJ1743)会做即可. 还是二分长 ...

  6. BZOJ 1016 Windy 数 | 数位DP

    题目: http://www.lydsy.com/JudgeOnline/problem.php?id=1026 题解: f[i][j][1/0]表示枚举到第i位,这位开头是j,当前的数大于(1)或小 ...

  7. 关于PDO取得结果集的数据类型为string的问题

    很久没写些什么了, 正好今天工作中遇到了以前在意过的问题. 之前曾注意到过,php从数据库中取得的结果集后,其中的字段全都会变成string类型.今儿通过ajax调取数据, 有一个type字段是int ...

  8. [AHOI2008] 逆序对

    link 我们可以很容易的推断出$-1$是单调不降的,若$i>j$且$a_i$与$a_j$都没有填数,若填完之后$a_i>a_j$或者$a_i<a_j$,则对答案产生影响的只在$[i ...

  9. 查看自己电脑外网IP

    连着wifi,在CMD窗口中显示的无线局域网适配器IP很有可能是内网IP.此时可以通过下面方法查看自己的电脑外网IP. 1.前提条件可以上外网: 2.上外网百度,输入IP,进行搜索. 3.查看结果即可 ...

  10. JS把内容动态插入到DIV

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DT ...