| 1 | |
| 2 |
|
| 3 | |
| 4 | |
| 5 | |
| 6 |
|
| 7 | use crate::{
|
| 8 | bindings,
|
| 9 | fmt,
|
| 10 | prelude::*, |
| 11 | };
|
| 12 |
|
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | #[derive(Clone, Copy, PartialEq, Eq)]
|
| 33 | #[repr(transparent)]
|
| 34 | pub struct Class(u32);
|
| 35 |
|
| 36 | |
| 37 | #[repr(u32)]
|
| 38 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
| 39 | pub enum ClassMask {
|
| 40 | |
| 41 | Full = 0xffffff,
|
| 42 | |
| 43 | ClassSubclass = 0xffff00,
|
| 44 | }
|
| 45 |
|
| 46 | macro_rules! define_all_pci_classes {
|
| 47 | (
|
| 48 | $($variant:ident = $binding:expr,)+
|
| 49 | ) => {
|
| 50 | impl Class {
|
| 51 | $(
|
| 52 | #[allow(missing_docs)]
|
| 53 | pub const $variant: Self = Self(Self::to_24bit_class($binding));
|
| 54 | )+
|
| 55 | }
|
| 56 |
|
| 57 | impl fmt::Display for Class {
|
| 58 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
| 59 | match self {
|
| 60 | $(
|
| 61 | &Self::$variant => write!(f, stringify!($variant)),
|
| 62 | )+
|
| 63 | _ => <Self as fmt::Debug>::fmt(self, f),
|
| 64 | }
|
| 65 | }
|
| 66 | }
|
| 67 | };
|
| 68 | }
|
| 69 |
|
| 70 | |
| 71 | impl Class {
|
| 72 | |
| 73 | #[inline]
|
| 74 | pub(super) fn from_raw(class_code: u32) -> Self {
|
| 75 | Self(class_code)
|
| 76 | }
|
| 77 |
|
| 78 | |
| 79 | #[inline]
|
| 80 | pub const fn as_raw(self) -> u32 {
|
| 81 | self.0
|
| 82 | }
|
| 83 |
|
| 84 | |
| 85 | |
| 86 | |
| 87 | |
| 88 | |
| 89 | const fn to_24bit_class(val: u32) -> u32 {
|
| 90 | if val > 0xFFFF {
|
| 91 | val
|
| 92 | } else {
|
| 93 | val << 8
|
| 94 | }
|
| 95 | }
|
| 96 | }
|
| 97 |
|
| 98 | impl fmt::Debug for Class {
|
| 99 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
| 100 | write!(f, "0x{:06x}", self.0)
|
| 101 | }
|
| 102 | }
|
| 103 |
|
| 104 | impl ClassMask {
|
| 105 | |
| 106 | #[inline]
|
| 107 | pub const fn as_raw(self) -> u32 {
|
| 108 | self as u32
|
| 109 | }
|
| 110 | }
|
| 111 |
|
| 112 | impl TryFrom<u32> for ClassMask {
|
| 113 | type Error = Error;
|
| 114 |
|
| 115 | fn try_from(value: u32) -> Result<Self, Self::Error> {
|
| 116 | match value {
|
| 117 | 0xffffff => Ok(ClassMask::Full),
|
| 118 | 0xffff00 => Ok(ClassMask::ClassSubclass),
|
| 119 | _ => Err(EINVAL),
|
| 120 | }
|
| 121 | }
|
| 122 | }
|
| 123 |
|
| 124 | |
| 125 | |
| 126 | |
| 127 | #[derive(Clone, Copy, PartialEq, Eq)]
|
| 128 | #[repr(transparent)]
|
| 129 | pub struct Vendor(u16);
|
| 130 |
|
| 131 | macro_rules! define_all_pci_vendors {
|
| 132 | (
|
| 133 | $($variant:ident = $binding:expr,)+
|
| 134 | ) => {
|
| 135 | impl Vendor {
|
| 136 | $(
|
| 137 | #[allow(missing_docs)]
|
| 138 | pub const $variant: Self = Self($binding as u16);
|
| 139 | )+
|
| 140 | }
|
| 141 |
|
| 142 | impl fmt::Display for Vendor {
|
| 143 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
| 144 | match self {
|
| 145 | $(
|
| 146 | &Self::$variant => write!(f, stringify!($variant)),
|
| 147 | )+
|
| 148 | _ => <Self as fmt::Debug>::fmt(self, f),
|
| 149 | }
|
| 150 | }
|
| 151 | }
|
| 152 | };
|
| 153 | }
|
| 154 |
|
| 155 | |
| 156 | impl Vendor {
|
| 157 | |
| 158 | #[inline]
|
| 159 | pub(super) fn from_raw(vendor_id: u16) -> Self {
|
| 160 | Self(vendor_id)
|
| 161 | }
|
| 162 |
|
| 163 | |
| 164 | #[inline]
|
| 165 | pub const fn as_raw(self) -> u16 {
|
| 166 | self.0
|
| 167 | }
|
| 168 | }
|
| 169 |
|
| 170 | impl fmt::Debug for Vendor {
|
| 171 | #[inline]
|
| 172 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
| 173 | write!(f, "0x{:04x}", self.0)
|
| 174 | }
|
| 175 | }
|
| 176 |
|
| 177 | define_all_pci_classes! {
|
| 178 | NOT_DEFINED = bindings::PCI_CLASS_NOT_DEFINED, |
| 179 | NOT_DEFINED_VGA = bindings::PCI_CLASS_NOT_DEFINED_VGA, |
| 180 |
|
| 181 | STORAGE_SCSI = bindings::PCI_CLASS_STORAGE_SCSI, |
| 182 | STORAGE_IDE = bindings::PCI_CLASS_STORAGE_IDE, |
| 183 | STORAGE_FLOPPY = bindings::PCI_CLASS_STORAGE_FLOPPY, |
| 184 | STORAGE_IPI = bindings::PCI_CLASS_STORAGE_IPI, |
| 185 | STORAGE_RAID = bindings::PCI_CLASS_STORAGE_RAID, |
| 186 | STORAGE_SATA = bindings::PCI_CLASS_STORAGE_SATA, |
| 187 | STORAGE_SATA_AHCI = bindings::PCI_CLASS_STORAGE_SATA_AHCI, |
| 188 | STORAGE_SAS = bindings::PCI_CLASS_STORAGE_SAS, |
| 189 | STORAGE_EXPRESS = bindings::PCI_CLASS_STORAGE_EXPRESS, |
| 190 | STORAGE_OTHER = bindings::PCI_CLASS_STORAGE_OTHER, |
| 191 |
|
| 192 | NETWORK_ETHERNET = bindings::PCI_CLASS_NETWORK_ETHERNET, |
| 193 | NETWORK_TOKEN_RING = bindings::PCI_CLASS_NETWORK_TOKEN_RING, |
| 194 | NETWORK_FDDI = bindings::PCI_CLASS_NETWORK_FDDI, |
| 195 | NETWORK_ATM = bindings::PCI_CLASS_NETWORK_ATM, |
| 196 | NETWORK_OTHER = bindings::PCI_CLASS_NETWORK_OTHER, |
| 197 |
|
| 198 | DISPLAY_VGA = bindings::PCI_CLASS_DISPLAY_VGA, |
| 199 | DISPLAY_XGA = bindings::PCI_CLASS_DISPLAY_XGA, |
| 200 | DISPLAY_3D = bindings::PCI_CLASS_DISPLAY_3D, |
| 201 | DISPLAY_OTHER = bindings::PCI_CLASS_DISPLAY_OTHER, |
| 202 |
|
| 203 | MULTIMEDIA_VIDEO = bindings::PCI_CLASS_MULTIMEDIA_VIDEO, |
| 204 | MULTIMEDIA_AUDIO = bindings::PCI_CLASS_MULTIMEDIA_AUDIO, |
| 205 | MULTIMEDIA_PHONE = bindings::PCI_CLASS_MULTIMEDIA_PHONE, |
| 206 | MULTIMEDIA_HD_AUDIO = bindings::PCI_CLASS_MULTIMEDIA_HD_AUDIO, |
| 207 | MULTIMEDIA_OTHER = bindings::PCI_CLASS_MULTIMEDIA_OTHER, |
| 208 |
|
| 209 | MEMORY_RAM = bindings::PCI_CLASS_MEMORY_RAM, |
| 210 | MEMORY_FLASH = bindings::PCI_CLASS_MEMORY_FLASH, |
| 211 | MEMORY_CXL = bindings::PCI_CLASS_MEMORY_CXL, |
| 212 | MEMORY_OTHER = bindings::PCI_CLASS_MEMORY_OTHER, |
| 213 |
|
| 214 | BRIDGE_HOST = bindings::PCI_CLASS_BRIDGE_HOST, |
| 215 | BRIDGE_ISA = bindings::PCI_CLASS_BRIDGE_ISA, |
| 216 | BRIDGE_EISA = bindings::PCI_CLASS_BRIDGE_EISA, |
| 217 | BRIDGE_MC = bindings::PCI_CLASS_BRIDGE_MC, |
| 218 | BRIDGE_PCI_NORMAL = bindings::PCI_CLASS_BRIDGE_PCI_NORMAL, |
| 219 | BRIDGE_PCI_SUBTRACTIVE = bindings::PCI_CLASS_BRIDGE_PCI_SUBTRACTIVE, |
| 220 | BRIDGE_PCMCIA = bindings::PCI_CLASS_BRIDGE_PCMCIA, |
| 221 | BRIDGE_NUBUS = bindings::PCI_CLASS_BRIDGE_NUBUS, |
| 222 | BRIDGE_CARDBUS = bindings::PCI_CLASS_BRIDGE_CARDBUS, |
| 223 | BRIDGE_RACEWAY = bindings::PCI_CLASS_BRIDGE_RACEWAY, |
| 224 | BRIDGE_OTHER = bindings::PCI_CLASS_BRIDGE_OTHER, |
| 225 |
|
| 226 | COMMUNICATION_SERIAL = bindings::PCI_CLASS_COMMUNICATION_SERIAL, |
| 227 | COMMUNICATION_PARALLEL = bindings::PCI_CLASS_COMMUNICATION_PARALLEL, |
| 228 | COMMUNICATION_MULTISERIAL = bindings::PCI_CLASS_COMMUNICATION_MULTISERIAL, |
| 229 | COMMUNICATION_MODEM = bindings::PCI_CLASS_COMMUNICATION_MODEM, |
| 230 | COMMUNICATION_OTHER = bindings::PCI_CLASS_COMMUNICATION_OTHER, |
| 231 |
|
| 232 | SYSTEM_PIC = bindings::PCI_CLASS_SYSTEM_PIC, |
| 233 | SYSTEM_PIC_IOAPIC = bindings::PCI_CLASS_SYSTEM_PIC_IOAPIC, |
| 234 | SYSTEM_PIC_IOXAPIC = bindings::PCI_CLASS_SYSTEM_PIC_IOXAPIC, |
| 235 | SYSTEM_DMA = bindings::PCI_CLASS_SYSTEM_DMA, |
| 236 | SYSTEM_TIMER = bindings::PCI_CLASS_SYSTEM_TIMER, |
| 237 | SYSTEM_RTC = bindings::PCI_CLASS_SYSTEM_RTC, |
| 238 | SYSTEM_PCI_HOTPLUG = bindings::PCI_CLASS_SYSTEM_PCI_HOTPLUG, |
| 239 | SYSTEM_SDHCI = bindings::PCI_CLASS_SYSTEM_SDHCI, |
| 240 | SYSTEM_RCEC = bindings::PCI_CLASS_SYSTEM_RCEC, |
| 241 | SYSTEM_OTHER = bindings::PCI_CLASS_SYSTEM_OTHER, |
| 242 |
|
| 243 | INPUT_KEYBOARD = bindings::PCI_CLASS_INPUT_KEYBOARD, |
| 244 | INPUT_PEN = bindings::PCI_CLASS_INPUT_PEN, |
| 245 | INPUT_MOUSE = bindings::PCI_CLASS_INPUT_MOUSE, |
| 246 | INPUT_SCANNER = bindings::PCI_CLASS_INPUT_SCANNER, |
| 247 | INPUT_GAMEPORT = bindings::PCI_CLASS_INPUT_GAMEPORT, |
| 248 | INPUT_OTHER = bindings::PCI_CLASS_INPUT_OTHER, |
| 249 |
|
| 250 | DOCKING_GENERIC = bindings::PCI_CLASS_DOCKING_GENERIC, |
| 251 | DOCKING_OTHER = bindings::PCI_CLASS_DOCKING_OTHER, |
| 252 |
|
| 253 | PROCESSOR_386 = bindings::PCI_CLASS_PROCESSOR_386, |
| 254 | PROCESSOR_486 = bindings::PCI_CLASS_PROCESSOR_486, |
| 255 | PROCESSOR_PENTIUM = bindings::PCI_CLASS_PROCESSOR_PENTIUM, |
| 256 | PROCESSOR_ALPHA = bindings::PCI_CLASS_PROCESSOR_ALPHA, |
| 257 | PROCESSOR_POWERPC = bindings::PCI_CLASS_PROCESSOR_POWERPC, |
| 258 | PROCESSOR_MIPS = bindings::PCI_CLASS_PROCESSOR_MIPS, |
| 259 | PROCESSOR_CO = bindings::PCI_CLASS_PROCESSOR_CO, |
| 260 |
|
| 261 | SERIAL_FIREWIRE = bindings::PCI_CLASS_SERIAL_FIREWIRE, |
| 262 | SERIAL_FIREWIRE_OHCI = bindings::PCI_CLASS_SERIAL_FIREWIRE_OHCI, |
| 263 | SERIAL_ACCESS = bindings::PCI_CLASS_SERIAL_ACCESS, |
| 264 | SERIAL_SSA = bindings::PCI_CLASS_SERIAL_SSA, |
| 265 | SERIAL_USB_UHCI = bindings::PCI_CLASS_SERIAL_USB_UHCI, |
| 266 | SERIAL_USB_OHCI = bindings::PCI_CLASS_SERIAL_USB_OHCI, |
| 267 | SERIAL_USB_EHCI = bindings::PCI_CLASS_SERIAL_USB_EHCI, |
| 268 | SERIAL_USB_XHCI = bindings::PCI_CLASS_SERIAL_USB_XHCI, |
| 269 | SERIAL_USB_CDNS = bindings::PCI_CLASS_SERIAL_USB_CDNS, |
| 270 | SERIAL_USB_DEVICE = bindings::PCI_CLASS_SERIAL_USB_DEVICE, |
| 271 | SERIAL_FIBER = bindings::PCI_CLASS_SERIAL_FIBER, |
| 272 | SERIAL_SMBUS = bindings::PCI_CLASS_SERIAL_SMBUS, |
| 273 | SERIAL_IPMI_SMIC = bindings::PCI_CLASS_SERIAL_IPMI_SMIC, |
| 274 | SERIAL_IPMI_KCS = bindings::PCI_CLASS_SERIAL_IPMI_KCS, |
| 275 | SERIAL_IPMI_BT = bindings::PCI_CLASS_SERIAL_IPMI_BT, |
| 276 |
|
| 277 | WIRELESS_RF_CONTROLLER = bindings::PCI_CLASS_WIRELESS_RF_CONTROLLER, |
| 278 | WIRELESS_WHCI = bindings::PCI_CLASS_WIRELESS_WHCI, |
| 279 |
|
| 280 | INTELLIGENT_I2O = bindings::PCI_CLASS_INTELLIGENT_I2O, |
| 281 |
|
| 282 | SATELLITE_TV = bindings::PCI_CLASS_SATELLITE_TV, |
| 283 | SATELLITE_AUDIO = bindings::PCI_CLASS_SATELLITE_AUDIO, |
| 284 | SATELLITE_VOICE = bindings::PCI_CLASS_SATELLITE_VOICE, |
| 285 | SATELLITE_DATA = bindings::PCI_CLASS_SATELLITE_DATA, |
| 286 |
|
| 287 | CRYPT_NETWORK = bindings::PCI_CLASS_CRYPT_NETWORK, |
| 288 | CRYPT_ENTERTAINMENT = bindings::PCI_CLASS_CRYPT_ENTERTAINMENT, |
| 289 | CRYPT_OTHER = bindings::PCI_CLASS_CRYPT_OTHER, |
| 290 |
|
| 291 | SP_DPIO = bindings::PCI_CLASS_SP_DPIO, |
| 292 | SP_OTHER = bindings::PCI_CLASS_SP_OTHER, |
| 293 |
|
| 294 | ACCELERATOR_PROCESSING = bindings::PCI_CLASS_ACCELERATOR_PROCESSING, |
| 295 |
|
| 296 | OTHERS = bindings::PCI_CLASS_OTHERS, |
| 297 | }
|
| 298 |
|
| 299 | define_all_pci_vendors! {
|
| 300 | PCI_SIG = bindings::PCI_VENDOR_ID_PCI_SIG, |
| 301 | LOONGSON = bindings::PCI_VENDOR_ID_LOONGSON, |
| 302 | SOLIDIGM = bindings::PCI_VENDOR_ID_SOLIDIGM, |
| 303 | TTTECH = bindings::PCI_VENDOR_ID_TTTECH, |
| 304 | DYNALINK = bindings::PCI_VENDOR_ID_DYNALINK, |
| 305 | UBIQUITI = bindings::PCI_VENDOR_ID_UBIQUITI, |
| 306 | BERKOM = bindings::PCI_VENDOR_ID_BERKOM, |
| 307 | ITTIM = bindings::PCI_VENDOR_ID_ITTIM, |
| 308 | COMPAQ = bindings::PCI_VENDOR_ID_COMPAQ, |
| 309 | LSI_LOGIC = bindings::PCI_VENDOR_ID_LSI_LOGIC, |
| 310 | ATI = bindings::PCI_VENDOR_ID_ATI, |
| 311 | VLSI = bindings::PCI_VENDOR_ID_VLSI, |
| 312 | ADL = bindings::PCI_VENDOR_ID_ADL, |
| 313 | NS = bindings::PCI_VENDOR_ID_NS, |
| 314 | TSENG = bindings::PCI_VENDOR_ID_TSENG, |
| 315 | WEITEK = bindings::PCI_VENDOR_ID_WEITEK, |
| 316 | DEC = bindings::PCI_VENDOR_ID_DEC, |
| 317 | CIRRUS = bindings::PCI_VENDOR_ID_CIRRUS, |
| 318 | IBM = bindings::PCI_VENDOR_ID_IBM, |
| 319 | UNISYS = bindings::PCI_VENDOR_ID_UNISYS, |
| 320 | COMPEX2 = bindings::PCI_VENDOR_ID_COMPEX2, |
| 321 | WD = bindings::PCI_VENDOR_ID_WD, |
| 322 | AMI = bindings::PCI_VENDOR_ID_AMI, |
| 323 | AMD = bindings::PCI_VENDOR_ID_AMD, |
| 324 | TRIDENT = bindings::PCI_VENDOR_ID_TRIDENT, |
| 325 | AI = bindings::PCI_VENDOR_ID_AI, |
| 326 | DELL = bindings::PCI_VENDOR_ID_DELL, |
| 327 | MATROX = bindings::PCI_VENDOR_ID_MATROX, |
| 328 | MOBILITY_ELECTRONICS = bindings::PCI_VENDOR_ID_MOBILITY_ELECTRONICS, |
| 329 | CT = bindings::PCI_VENDOR_ID_CT, |
| 330 | MIRO = bindings::PCI_VENDOR_ID_MIRO, |
| 331 | NEC = bindings::PCI_VENDOR_ID_NEC, |
| 332 | FD = bindings::PCI_VENDOR_ID_FD, |
| 333 | SI = bindings::PCI_VENDOR_ID_SI, |
| 334 | HP = bindings::PCI_VENDOR_ID_HP, |
| 335 | HP_3PAR = bindings::PCI_VENDOR_ID_HP_3PAR, |
| 336 | PCTECH = bindings::PCI_VENDOR_ID_PCTECH, |
| 337 | ASUSTEK = bindings::PCI_VENDOR_ID_ASUSTEK, |
| 338 | DPT = bindings::PCI_VENDOR_ID_DPT, |
| 339 | OPTI = bindings::PCI_VENDOR_ID_OPTI, |
| 340 | ELSA = bindings::PCI_VENDOR_ID_ELSA, |
| 341 | STMICRO = bindings::PCI_VENDOR_ID_STMICRO, |
| 342 | BUSLOGIC = bindings::PCI_VENDOR_ID_BUSLOGIC, |
| 343 | TI = bindings::PCI_VENDOR_ID_TI, |
| 344 | SONY = bindings::PCI_VENDOR_ID_SONY, |
| 345 | WINBOND2 = bindings::PCI_VENDOR_ID_WINBOND2, |
| 346 | ANIGMA = bindings::PCI_VENDOR_ID_ANIGMA, |
| 347 | EFAR = bindings::PCI_VENDOR_ID_EFAR, |
| 348 | MOTOROLA = bindings::PCI_VENDOR_ID_MOTOROLA, |
| 349 | PROMISE = bindings::PCI_VENDOR_ID_PROMISE, |
| 350 | FOXCONN = bindings::PCI_VENDOR_ID_FOXCONN, |
| 351 | UMC = bindings::PCI_VENDOR_ID_UMC, |
| 352 | PICOPOWER = bindings::PCI_VENDOR_ID_PICOPOWER, |
| 353 | MYLEX = bindings::PCI_VENDOR_ID_MYLEX, |
| 354 | APPLE = bindings::PCI_VENDOR_ID_APPLE, |
| 355 | YAMAHA = bindings::PCI_VENDOR_ID_YAMAHA, |
| 356 | QLOGIC = bindings::PCI_VENDOR_ID_QLOGIC, |
| 357 | CYRIX = bindings::PCI_VENDOR_ID_CYRIX, |
| 358 | CONTAQ = bindings::PCI_VENDOR_ID_CONTAQ, |
| 359 | OLICOM = bindings::PCI_VENDOR_ID_OLICOM, |
| 360 | SUN = bindings::PCI_VENDOR_ID_SUN, |
| 361 | NI = bindings::PCI_VENDOR_ID_NI, |
| 362 | CMD = bindings::PCI_VENDOR_ID_CMD, |
| 363 | BROOKTREE = bindings::PCI_VENDOR_ID_BROOKTREE, |
| 364 | SGI = bindings::PCI_VENDOR_ID_SGI, |
| 365 | WINBOND = bindings::PCI_VENDOR_ID_WINBOND, |
| 366 | PLX = bindings::PCI_VENDOR_ID_PLX, |
| 367 | MADGE = bindings::PCI_VENDOR_ID_MADGE, |
| 368 | THREECOM = bindings::PCI_VENDOR_ID_3COM, |
| 369 | AL = bindings::PCI_VENDOR_ID_AL, |
| 370 | NEOMAGIC = bindings::PCI_VENDOR_ID_NEOMAGIC, |
| 371 | TCONRAD = bindings::PCI_VENDOR_ID_TCONRAD, |
| 372 | ROHM = bindings::PCI_VENDOR_ID_ROHM, |
| 373 | NVIDIA = bindings::PCI_VENDOR_ID_NVIDIA, |
| 374 | IMS = bindings::PCI_VENDOR_ID_IMS, |
| 375 | AMCC = bindings::PCI_VENDOR_ID_AMCC, |
| 376 | AMPERE = bindings::PCI_VENDOR_ID_AMPERE, |
| 377 | INTERG = bindings::PCI_VENDOR_ID_INTERG, |
| 378 | REALTEK = bindings::PCI_VENDOR_ID_REALTEK, |
| 379 | XILINX = bindings::PCI_VENDOR_ID_XILINX, |
| 380 | INIT = bindings::PCI_VENDOR_ID_INIT, |
| 381 | CREATIVE = bindings::PCI_VENDOR_ID_CREATIVE, |
| 382 | TTI = bindings::PCI_VENDOR_ID_TTI, |
| 383 | SIGMA = bindings::PCI_VENDOR_ID_SIGMA, |
| 384 | VIA = bindings::PCI_VENDOR_ID_VIA, |
| 385 | SIEMENS = bindings::PCI_VENDOR_ID_SIEMENS, |
| 386 | VORTEX = bindings::PCI_VENDOR_ID_VORTEX, |
| 387 | EF = bindings::PCI_VENDOR_ID_EF, |
| 388 | IDT = bindings::PCI_VENDOR_ID_IDT, |
| 389 | FORE = bindings::PCI_VENDOR_ID_FORE, |
| 390 | PHILIPS = bindings::PCI_VENDOR_ID_PHILIPS, |
| 391 | EICON = bindings::PCI_VENDOR_ID_EICON, |
| 392 | CISCO = bindings::PCI_VENDOR_ID_CISCO, |
| 393 | ZIATECH = bindings::PCI_VENDOR_ID_ZIATECH, |
| 394 | SYSKONNECT = bindings::PCI_VENDOR_ID_SYSKONNECT, |
| 395 | DIGI = bindings::PCI_VENDOR_ID_DIGI, |
| 396 | XIRCOM = bindings::PCI_VENDOR_ID_XIRCOM, |
| 397 | SERVERWORKS = bindings::PCI_VENDOR_ID_SERVERWORKS, |
| 398 | ALTERA = bindings::PCI_VENDOR_ID_ALTERA, |
| 399 | SBE = bindings::PCI_VENDOR_ID_SBE, |
| 400 | TOSHIBA = bindings::PCI_VENDOR_ID_TOSHIBA, |
| 401 | TOSHIBA_2 = bindings::PCI_VENDOR_ID_TOSHIBA_2, |
| 402 | ATTO = bindings::PCI_VENDOR_ID_ATTO, |
| 403 | RICOH = bindings::PCI_VENDOR_ID_RICOH, |
| 404 | DLINK = bindings::PCI_VENDOR_ID_DLINK, |
| 405 | ARTOP = bindings::PCI_VENDOR_ID_ARTOP, |
| 406 | ZEITNET = bindings::PCI_VENDOR_ID_ZEITNET, |
| 407 | FUJITSU_ME = bindings::PCI_VENDOR_ID_FUJITSU_ME, |
| 408 | MARVELL = bindings::PCI_VENDOR_ID_MARVELL, |
| 409 | MARVELL_EXT = bindings::PCI_VENDOR_ID_MARVELL_EXT, |
| 410 | V3 = bindings::PCI_VENDOR_ID_V3, |
| 411 | ATT = bindings::PCI_VENDOR_ID_ATT, |
| 412 | SPECIALIX = bindings::PCI_VENDOR_ID_SPECIALIX, |
| 413 | ANALOG_DEVICES = bindings::PCI_VENDOR_ID_ANALOG_DEVICES, |
| 414 | ZORAN = bindings::PCI_VENDOR_ID_ZORAN, |
| 415 | COMPEX = bindings::PCI_VENDOR_ID_COMPEX, |
| 416 | MICROSEMI = bindings::PCI_VENDOR_ID_MICROSEMI, |
| 417 | RP = bindings::PCI_VENDOR_ID_RP, |
| 418 | CYCLADES = bindings::PCI_VENDOR_ID_CYCLADES, |
| 419 | O2 = bindings::PCI_VENDOR_ID_O2, |
| 420 | THREEDX = bindings::PCI_VENDOR_ID_3DFX, |
| 421 | AVM = bindings::PCI_VENDOR_ID_AVM, |
| 422 | STALLION = bindings::PCI_VENDOR_ID_STALLION, |
| 423 | AT = bindings::PCI_VENDOR_ID_AT, |
| 424 | ASIX = bindings::PCI_VENDOR_ID_ASIX, |
| 425 | ESS = bindings::PCI_VENDOR_ID_ESS, |
| 426 | SATSAGEM = bindings::PCI_VENDOR_ID_SATSAGEM, |
| 427 | ENSONIQ = bindings::PCI_VENDOR_ID_ENSONIQ, |
| 428 | TRANSMETA = bindings::PCI_VENDOR_ID_TRANSMETA, |
| 429 | ROCKWELL = bindings::PCI_VENDOR_ID_ROCKWELL, |
| 430 | ITE = bindings::PCI_VENDOR_ID_ITE, |
| 431 | ALTEON = bindings::PCI_VENDOR_ID_ALTEON, |
| 432 | NVIDIA_SGS = bindings::PCI_VENDOR_ID_NVIDIA_SGS, |
| 433 | PERICOM = bindings::PCI_VENDOR_ID_PERICOM, |
| 434 | AUREAL = bindings::PCI_VENDOR_ID_AUREAL, |
| 435 | ELECTRONICDESIGNGMBH = bindings::PCI_VENDOR_ID_ELECTRONICDESIGNGMBH, |
| 436 | ESDGMBH = bindings::PCI_VENDOR_ID_ESDGMBH, |
| 437 | CB = bindings::PCI_VENDOR_ID_CB, |
| 438 | SIIG = bindings::PCI_VENDOR_ID_SIIG, |
| 439 | RADISYS = bindings::PCI_VENDOR_ID_RADISYS, |
| 440 | MICRO_MEMORY = bindings::PCI_VENDOR_ID_MICRO_MEMORY, |
| 441 | DOMEX = bindings::PCI_VENDOR_ID_DOMEX, |
| 442 | INTASHIELD = bindings::PCI_VENDOR_ID_INTASHIELD, |
| 443 | QUATECH = bindings::PCI_VENDOR_ID_QUATECH, |
| 444 | SEALEVEL = bindings::PCI_VENDOR_ID_SEALEVEL, |
| 445 | HYPERCOPE = bindings::PCI_VENDOR_ID_HYPERCOPE, |
| 446 | DIGIGRAM = bindings::PCI_VENDOR_ID_DIGIGRAM, |
| 447 | KAWASAKI = bindings::PCI_VENDOR_ID_KAWASAKI, |
| 448 | CNET = bindings::PCI_VENDOR_ID_CNET, |
| 449 | LMC = bindings::PCI_VENDOR_ID_LMC, |
| 450 | NETGEAR = bindings::PCI_VENDOR_ID_NETGEAR, |
| 451 | APPLICOM = bindings::PCI_VENDOR_ID_APPLICOM, |
| 452 | MOXA = bindings::PCI_VENDOR_ID_MOXA, |
| 453 | CCD = bindings::PCI_VENDOR_ID_CCD, |
| 454 | EXAR = bindings::PCI_VENDOR_ID_EXAR, |
| 455 | MICROGATE = bindings::PCI_VENDOR_ID_MICROGATE, |
| 456 | THREEWARE = bindings::PCI_VENDOR_ID_3WARE, |
| 457 | IOMEGA = bindings::PCI_VENDOR_ID_IOMEGA, |
| 458 | ABOCOM = bindings::PCI_VENDOR_ID_ABOCOM, |
| 459 | SUNDANCE = bindings::PCI_VENDOR_ID_SUNDANCE, |
| 460 | CMEDIA = bindings::PCI_VENDOR_ID_CMEDIA, |
| 461 | ADVANTECH = bindings::PCI_VENDOR_ID_ADVANTECH, |
| 462 | MEILHAUS = bindings::PCI_VENDOR_ID_MEILHAUS, |
| 463 | LAVA = bindings::PCI_VENDOR_ID_LAVA, |
| 464 | TIMEDIA = bindings::PCI_VENDOR_ID_TIMEDIA, |
| 465 | ICE = bindings::PCI_VENDOR_ID_ICE, |
| 466 | MICROSOFT = bindings::PCI_VENDOR_ID_MICROSOFT, |
| 467 | OXSEMI = bindings::PCI_VENDOR_ID_OXSEMI, |
| 468 | CHELSIO = bindings::PCI_VENDOR_ID_CHELSIO, |
| 469 | EDIMAX = bindings::PCI_VENDOR_ID_EDIMAX, |
| 470 | ADLINK = bindings::PCI_VENDOR_ID_ADLINK, |
| 471 | SAMSUNG = bindings::PCI_VENDOR_ID_SAMSUNG, |
| 472 | GIGABYTE = bindings::PCI_VENDOR_ID_GIGABYTE, |
| 473 | AMBIT = bindings::PCI_VENDOR_ID_AMBIT, |
| 474 | MYRICOM = bindings::PCI_VENDOR_ID_MYRICOM, |
| 475 | MEDIATEK = bindings::PCI_VENDOR_ID_MEDIATEK, |
| 476 | TITAN = bindings::PCI_VENDOR_ID_TITAN, |
| 477 | PANACOM = bindings::PCI_VENDOR_ID_PANACOM, |
| 478 | SIPACKETS = bindings::PCI_VENDOR_ID_SIPACKETS, |
| 479 | AFAVLAB = bindings::PCI_VENDOR_ID_AFAVLAB, |
| 480 | AMPLICON = bindings::PCI_VENDOR_ID_AMPLICON, |
| 481 | BCM_GVC = bindings::PCI_VENDOR_ID_BCM_GVC, |
| 482 | BROADCOM = bindings::PCI_VENDOR_ID_BROADCOM, |
| 483 | TOPIC = bindings::PCI_VENDOR_ID_TOPIC, |
| 484 | MAINPINE = bindings::PCI_VENDOR_ID_MAINPINE, |
| 485 | ENE = bindings::PCI_VENDOR_ID_ENE, |
| 486 | SYBA = bindings::PCI_VENDOR_ID_SYBA, |
| 487 | MORETON = bindings::PCI_VENDOR_ID_MORETON, |
| 488 | VMWARE = bindings::PCI_VENDOR_ID_VMWARE, |
| 489 | ZOLTRIX = bindings::PCI_VENDOR_ID_ZOLTRIX, |
| 490 | MELLANOX = bindings::PCI_VENDOR_ID_MELLANOX, |
| 491 | DFI = bindings::PCI_VENDOR_ID_DFI, |
| 492 | QUICKNET = bindings::PCI_VENDOR_ID_QUICKNET, |
| 493 | ADDIDATA = bindings::PCI_VENDOR_ID_ADDIDATA, |
| 494 | PDC = bindings::PCI_VENDOR_ID_PDC, |
| 495 | FARSITE = bindings::PCI_VENDOR_ID_FARSITE, |
| 496 | ARIMA = bindings::PCI_VENDOR_ID_ARIMA, |
| 497 | BROCADE = bindings::PCI_VENDOR_ID_BROCADE, |
| 498 | SIBYTE = bindings::PCI_VENDOR_ID_SIBYTE, |
| 499 | ATHEROS = bindings::PCI_VENDOR_ID_ATHEROS, |
| 500 | NETCELL = bindings::PCI_VENDOR_ID_NETCELL, |
| 501 | CENATEK = bindings::PCI_VENDOR_ID_CENATEK, |
| 502 | SYNOPSYS = bindings::PCI_VENDOR_ID_SYNOPSYS, |
| 503 | USR = bindings::PCI_VENDOR_ID_USR, |
| 504 | VITESSE = bindings::PCI_VENDOR_ID_VITESSE, |
| 505 | LINKSYS = bindings::PCI_VENDOR_ID_LINKSYS, |
| 506 | ALTIMA = bindings::PCI_VENDOR_ID_ALTIMA, |
| 507 | CAVIUM = bindings::PCI_VENDOR_ID_CAVIUM, |
| 508 | TECHWELL = bindings::PCI_VENDOR_ID_TECHWELL, |
| 509 | BELKIN = bindings::PCI_VENDOR_ID_BELKIN, |
| 510 | RDC = bindings::PCI_VENDOR_ID_RDC, |
| 511 | GLI = bindings::PCI_VENDOR_ID_GLI, |
| 512 | LENOVO = bindings::PCI_VENDOR_ID_LENOVO, |
| 513 | QCOM = bindings::PCI_VENDOR_ID_QCOM, |
| 514 | CDNS = bindings::PCI_VENDOR_ID_CDNS, |
| 515 | ARECA = bindings::PCI_VENDOR_ID_ARECA, |
| 516 | S2IO = bindings::PCI_VENDOR_ID_S2IO, |
| 517 | SITECOM = bindings::PCI_VENDOR_ID_SITECOM, |
| 518 | TOPSPIN = bindings::PCI_VENDOR_ID_TOPSPIN, |
| 519 | COMMTECH = bindings::PCI_VENDOR_ID_COMMTECH, |
| 520 | SILAN = bindings::PCI_VENDOR_ID_SILAN, |
| 521 | RENESAS = bindings::PCI_VENDOR_ID_RENESAS, |
| 522 | SOLARFLARE = bindings::PCI_VENDOR_ID_SOLARFLARE, |
| 523 | TDI = bindings::PCI_VENDOR_ID_TDI, |
| 524 | NXP = bindings::PCI_VENDOR_ID_NXP, |
| 525 | PASEMI = bindings::PCI_VENDOR_ID_PASEMI, |
| 526 | ATTANSIC = bindings::PCI_VENDOR_ID_ATTANSIC, |
| 527 | JMICRON = bindings::PCI_VENDOR_ID_JMICRON, |
| 528 | KORENIX = bindings::PCI_VENDOR_ID_KORENIX, |
| 529 | HUAWEI = bindings::PCI_VENDOR_ID_HUAWEI, |
| 530 | NETRONOME = bindings::PCI_VENDOR_ID_NETRONOME, |
| 531 | QMI = bindings::PCI_VENDOR_ID_QMI, |
| 532 | AZWAVE = bindings::PCI_VENDOR_ID_AZWAVE, |
| 533 | REDHAT_QUMRANET = bindings::PCI_VENDOR_ID_REDHAT_QUMRANET, |
| 534 | ASMEDIA = bindings::PCI_VENDOR_ID_ASMEDIA, |
| 535 | REDHAT = bindings::PCI_VENDOR_ID_REDHAT, |
| 536 | WCHIC = bindings::PCI_VENDOR_ID_WCHIC, |
| 537 | SILICOM_DENMARK = bindings::PCI_VENDOR_ID_SILICOM_DENMARK, |
| 538 | AMAZON_ANNAPURNA_LABS = bindings::PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, |
| 539 | CIRCUITCO = bindings::PCI_VENDOR_ID_CIRCUITCO, |
| 540 | AMAZON = bindings::PCI_VENDOR_ID_AMAZON, |
| 541 | ZHAOXIN = bindings::PCI_VENDOR_ID_ZHAOXIN, |
| 542 | ROCKCHIP = bindings::PCI_VENDOR_ID_ROCKCHIP, |
| 543 | HYGON = bindings::PCI_VENDOR_ID_HYGON, |
| 544 | META = bindings::PCI_VENDOR_ID_META, |
| 545 | FUNGIBLE = bindings::PCI_VENDOR_ID_FUNGIBLE, |
| 546 | HXT = bindings::PCI_VENDOR_ID_HXT, |
| 547 | TEKRAM = bindings::PCI_VENDOR_ID_TEKRAM, |
| 548 | RPI = bindings::PCI_VENDOR_ID_RPI, |
| 549 | ALIBABA = bindings::PCI_VENDOR_ID_ALIBABA, |
| 550 | CXL = bindings::PCI_VENDOR_ID_CXL, |
| 551 | TEHUTI = bindings::PCI_VENDOR_ID_TEHUTI, |
| 552 | SUNIX = bindings::PCI_VENDOR_ID_SUNIX, |
| 553 | HINT = bindings::PCI_VENDOR_ID_HINT, |
| 554 | THREEDLABS = bindings::PCI_VENDOR_ID_3DLABS, |
| 555 | NETXEN = bindings::PCI_VENDOR_ID_NETXEN, |
| 556 | AKS = bindings::PCI_VENDOR_ID_AKS, |
| 557 | WCHCN = bindings::PCI_VENDOR_ID_WCHCN, |
| 558 | ACCESSIO = bindings::PCI_VENDOR_ID_ACCESSIO, |
| 559 | S3 = bindings::PCI_VENDOR_ID_S3, |
| 560 | DUNORD = bindings::PCI_VENDOR_ID_DUNORD, |
| 561 | DCI = bindings::PCI_VENDOR_ID_DCI, |
| 562 | GLENFLY = bindings::PCI_VENDOR_ID_GLENFLY, |
| 563 | INTEL = bindings::PCI_VENDOR_ID_INTEL, |
| 564 | WANGXUN = bindings::PCI_VENDOR_ID_WANGXUN, |
| 565 | SCALEMP = bindings::PCI_VENDOR_ID_SCALEMP, |
| 566 | COMPUTONE = bindings::PCI_VENDOR_ID_COMPUTONE, |
| 567 | KTI = bindings::PCI_VENDOR_ID_KTI, |
| 568 | ADAPTEC = bindings::PCI_VENDOR_ID_ADAPTEC, |
| 569 | ADAPTEC2 = bindings::PCI_VENDOR_ID_ADAPTEC2, |
| 570 | HOLTEK = bindings::PCI_VENDOR_ID_HOLTEK, |
| 571 | NETMOS = bindings::PCI_VENDOR_ID_NETMOS, |
| 572 | THREECOM_2 = bindings::PCI_VENDOR_ID_3COM_2, |
| 573 | SOLIDRUN = bindings::PCI_VENDOR_ID_SOLIDRUN, |
| 574 | DIGIUM = bindings::PCI_VENDOR_ID_DIGIUM, |
| 575 | TIGERJET = bindings::PCI_VENDOR_ID_TIGERJET, |
| 576 | XILINX_RME = bindings::PCI_VENDOR_ID_XILINX_RME, |
| 577 | XEN = bindings::PCI_VENDOR_ID_XEN, |
| 578 | OCZ = bindings::PCI_VENDOR_ID_OCZ, |
| 579 | NCUBE = bindings::PCI_VENDOR_ID_NCUBE, |
| 580 | }
|