1ed78a018SJohn Hubbard // SPDX-License-Identifier: GPL-2.0 2ed78a018SJohn Hubbard 3ed78a018SJohn Hubbard //! PCI device identifiers and related types. 4ed78a018SJohn Hubbard //! 55e20962aSJohn Hubbard //! This module contains PCI class codes, Vendor IDs, and supporting types. 6ed78a018SJohn Hubbard 7ed78a018SJohn Hubbard use crate::{bindings, error::code::EINVAL, error::Error, prelude::*}; 8ed78a018SJohn Hubbard use core::fmt; 9ed78a018SJohn Hubbard 10ed78a018SJohn Hubbard /// PCI device class codes. 11ed78a018SJohn Hubbard /// 12ed78a018SJohn Hubbard /// Each entry contains the full 24-bit PCI class code (base class in bits 13ed78a018SJohn Hubbard /// 23-16, subclass in bits 15-8, programming interface in bits 7-0). 14ed78a018SJohn Hubbard /// 15ed78a018SJohn Hubbard /// # Examples 16ed78a018SJohn Hubbard /// 17ed78a018SJohn Hubbard /// ``` 18ed78a018SJohn Hubbard /// # use kernel::{device::Core, pci::{self, Class}, prelude::*}; 19ed78a018SJohn Hubbard /// fn probe_device(pdev: &pci::Device<Core>) -> Result { 20ed78a018SJohn Hubbard /// let pci_class = pdev.pci_class(); 21ed78a018SJohn Hubbard /// dev_info!( 22ed78a018SJohn Hubbard /// pdev.as_ref(), 23ed78a018SJohn Hubbard /// "Detected PCI class: {}\n", 24ed78a018SJohn Hubbard /// pci_class 25ed78a018SJohn Hubbard /// ); 26ed78a018SJohn Hubbard /// Ok(()) 27ed78a018SJohn Hubbard /// } 28ed78a018SJohn Hubbard /// ``` 29ed78a018SJohn Hubbard #[derive(Clone, Copy, PartialEq, Eq)] 30ed78a018SJohn Hubbard #[repr(transparent)] 31ed78a018SJohn Hubbard pub struct Class(u32); 32ed78a018SJohn Hubbard 33ed78a018SJohn Hubbard /// PCI class mask constants for matching [`Class`] codes. 34ed78a018SJohn Hubbard #[repr(u32)] 35ed78a018SJohn Hubbard #[derive(Debug, Clone, Copy, PartialEq, Eq)] 36ed78a018SJohn Hubbard pub enum ClassMask { 37ed78a018SJohn Hubbard /// Match the full 24-bit class code. 38ed78a018SJohn Hubbard Full = 0xffffff, 39ed78a018SJohn Hubbard /// Match the upper 16 bits of the class code (base class and subclass only) 40ed78a018SJohn Hubbard ClassSubclass = 0xffff00, 41ed78a018SJohn Hubbard } 42ed78a018SJohn Hubbard 43ed78a018SJohn Hubbard macro_rules! define_all_pci_classes { 44ed78a018SJohn Hubbard ( 45ed78a018SJohn Hubbard $($variant:ident = $binding:expr,)+ 46ed78a018SJohn Hubbard ) => { 47ed78a018SJohn Hubbard impl Class { 48ed78a018SJohn Hubbard $( 49ed78a018SJohn Hubbard #[allow(missing_docs)] 50ed78a018SJohn Hubbard pub const $variant: Self = Self(Self::to_24bit_class($binding)); 51ed78a018SJohn Hubbard )+ 52ed78a018SJohn Hubbard } 53d53ea977SJohn Hubbard 54d53ea977SJohn Hubbard impl fmt::Display for Class { 55d53ea977SJohn Hubbard fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 56d53ea977SJohn Hubbard match self { 57d53ea977SJohn Hubbard $( 58d53ea977SJohn Hubbard &Self::$variant => write!(f, stringify!($variant)), 59d53ea977SJohn Hubbard )+ 60d53ea977SJohn Hubbard _ => <Self as fmt::Debug>::fmt(self, f), 61d53ea977SJohn Hubbard } 62d53ea977SJohn Hubbard } 63d53ea977SJohn Hubbard } 64ed78a018SJohn Hubbard }; 65ed78a018SJohn Hubbard } 66ed78a018SJohn Hubbard 67ed78a018SJohn Hubbard /// Once constructed, a [`Class`] contains a valid PCI class code. 68ed78a018SJohn Hubbard impl Class { 69ed78a018SJohn Hubbard /// Create a [`Class`] from a raw 24-bit class code. 70ed78a018SJohn Hubbard #[inline] 71ed78a018SJohn Hubbard pub(super) fn from_raw(class_code: u32) -> Self { 72ed78a018SJohn Hubbard Self(class_code) 73ed78a018SJohn Hubbard } 74ed78a018SJohn Hubbard 75ed78a018SJohn Hubbard /// Get the raw 24-bit class code value. 76ed78a018SJohn Hubbard #[inline] 77ed78a018SJohn Hubbard pub const fn as_raw(self) -> u32 { 78ed78a018SJohn Hubbard self.0 79ed78a018SJohn Hubbard } 80ed78a018SJohn Hubbard 81ed78a018SJohn Hubbard // Converts a PCI class constant to 24-bit format. 82ed78a018SJohn Hubbard // 83ed78a018SJohn Hubbard // Many device drivers use only the upper 16 bits (base class and subclass), 84ed78a018SJohn Hubbard // but some use the full 24 bits. In order to support both cases, store the 85ed78a018SJohn Hubbard // class code as a 24-bit value, where 16-bit values are shifted up 8 bits. 86ed78a018SJohn Hubbard const fn to_24bit_class(val: u32) -> u32 { 87ed78a018SJohn Hubbard if val > 0xFFFF { 88ed78a018SJohn Hubbard val 89ed78a018SJohn Hubbard } else { 90ed78a018SJohn Hubbard val << 8 91ed78a018SJohn Hubbard } 92ed78a018SJohn Hubbard } 93ed78a018SJohn Hubbard } 94ed78a018SJohn Hubbard 95ed78a018SJohn Hubbard impl fmt::Debug for Class { 96ed78a018SJohn Hubbard fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 97ed78a018SJohn Hubbard write!(f, "0x{:06x}", self.0) 98ed78a018SJohn Hubbard } 99ed78a018SJohn Hubbard } 100ed78a018SJohn Hubbard 101ed78a018SJohn Hubbard impl ClassMask { 102ed78a018SJohn Hubbard /// Get the raw mask value. 103ed78a018SJohn Hubbard #[inline] 104ed78a018SJohn Hubbard pub const fn as_raw(self) -> u32 { 105ed78a018SJohn Hubbard self as u32 106ed78a018SJohn Hubbard } 107ed78a018SJohn Hubbard } 108ed78a018SJohn Hubbard 109ed78a018SJohn Hubbard impl TryFrom<u32> for ClassMask { 110ed78a018SJohn Hubbard type Error = Error; 111ed78a018SJohn Hubbard 112ed78a018SJohn Hubbard fn try_from(value: u32) -> Result<Self, Self::Error> { 113ed78a018SJohn Hubbard match value { 114ed78a018SJohn Hubbard 0xffffff => Ok(ClassMask::Full), 115ed78a018SJohn Hubbard 0xffff00 => Ok(ClassMask::ClassSubclass), 116ed78a018SJohn Hubbard _ => Err(EINVAL), 117ed78a018SJohn Hubbard } 118ed78a018SJohn Hubbard } 119ed78a018SJohn Hubbard } 120ed78a018SJohn Hubbard 1215e20962aSJohn Hubbard /// PCI vendor IDs. 1225e20962aSJohn Hubbard /// 1235e20962aSJohn Hubbard /// Each entry contains the 16-bit PCI vendor ID as assigned by the PCI SIG. 1245e20962aSJohn Hubbard #[derive(Clone, Copy, PartialEq, Eq)] 1255e20962aSJohn Hubbard #[repr(transparent)] 1265e20962aSJohn Hubbard pub struct Vendor(u16); 1275e20962aSJohn Hubbard 1285e20962aSJohn Hubbard macro_rules! define_all_pci_vendors { 1295e20962aSJohn Hubbard ( 1305e20962aSJohn Hubbard $($variant:ident = $binding:expr,)+ 1315e20962aSJohn Hubbard ) => { 1325e20962aSJohn Hubbard impl Vendor { 1335e20962aSJohn Hubbard $( 1345e20962aSJohn Hubbard #[allow(missing_docs)] 1355e20962aSJohn Hubbard pub const $variant: Self = Self($binding as u16); 1365e20962aSJohn Hubbard )+ 1375e20962aSJohn Hubbard } 138*6d97171aSJohn Hubbard 139*6d97171aSJohn Hubbard impl fmt::Display for Vendor { 140*6d97171aSJohn Hubbard fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 141*6d97171aSJohn Hubbard match self { 142*6d97171aSJohn Hubbard $( 143*6d97171aSJohn Hubbard &Self::$variant => write!(f, stringify!($variant)), 144*6d97171aSJohn Hubbard )+ 145*6d97171aSJohn Hubbard _ => <Self as fmt::Debug>::fmt(self, f), 146*6d97171aSJohn Hubbard } 147*6d97171aSJohn Hubbard } 148*6d97171aSJohn Hubbard } 1495e20962aSJohn Hubbard }; 1505e20962aSJohn Hubbard } 1515e20962aSJohn Hubbard 1525e20962aSJohn Hubbard /// Once constructed, a `Vendor` contains a valid PCI Vendor ID. 1535e20962aSJohn Hubbard impl Vendor { 1545e20962aSJohn Hubbard /// Create a Vendor from a raw 16-bit vendor ID. 1555e20962aSJohn Hubbard #[inline] 1565e20962aSJohn Hubbard pub(super) fn from_raw(vendor_id: u16) -> Self { 1575e20962aSJohn Hubbard Self(vendor_id) 1585e20962aSJohn Hubbard } 1595e20962aSJohn Hubbard 1605e20962aSJohn Hubbard /// Get the raw 16-bit vendor ID value. 1615e20962aSJohn Hubbard #[inline] 1625e20962aSJohn Hubbard pub const fn as_raw(self) -> u16 { 1635e20962aSJohn Hubbard self.0 1645e20962aSJohn Hubbard } 1655e20962aSJohn Hubbard } 1665e20962aSJohn Hubbard 1675e20962aSJohn Hubbard impl fmt::Debug for Vendor { 1685e20962aSJohn Hubbard #[inline] 1695e20962aSJohn Hubbard fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 1705e20962aSJohn Hubbard write!(f, "0x{:04x}", self.0) 1715e20962aSJohn Hubbard } 1725e20962aSJohn Hubbard } 1735e20962aSJohn Hubbard 174ed78a018SJohn Hubbard define_all_pci_classes! { 175ed78a018SJohn Hubbard NOT_DEFINED = bindings::PCI_CLASS_NOT_DEFINED, // 0x000000 176ed78a018SJohn Hubbard NOT_DEFINED_VGA = bindings::PCI_CLASS_NOT_DEFINED_VGA, // 0x000100 177ed78a018SJohn Hubbard 178ed78a018SJohn Hubbard STORAGE_SCSI = bindings::PCI_CLASS_STORAGE_SCSI, // 0x010000 179ed78a018SJohn Hubbard STORAGE_IDE = bindings::PCI_CLASS_STORAGE_IDE, // 0x010100 180ed78a018SJohn Hubbard STORAGE_FLOPPY = bindings::PCI_CLASS_STORAGE_FLOPPY, // 0x010200 181ed78a018SJohn Hubbard STORAGE_IPI = bindings::PCI_CLASS_STORAGE_IPI, // 0x010300 182ed78a018SJohn Hubbard STORAGE_RAID = bindings::PCI_CLASS_STORAGE_RAID, // 0x010400 183ed78a018SJohn Hubbard STORAGE_SATA = bindings::PCI_CLASS_STORAGE_SATA, // 0x010600 184ed78a018SJohn Hubbard STORAGE_SATA_AHCI = bindings::PCI_CLASS_STORAGE_SATA_AHCI, // 0x010601 185ed78a018SJohn Hubbard STORAGE_SAS = bindings::PCI_CLASS_STORAGE_SAS, // 0x010700 186ed78a018SJohn Hubbard STORAGE_EXPRESS = bindings::PCI_CLASS_STORAGE_EXPRESS, // 0x010802 187ed78a018SJohn Hubbard STORAGE_OTHER = bindings::PCI_CLASS_STORAGE_OTHER, // 0x018000 188ed78a018SJohn Hubbard 189ed78a018SJohn Hubbard NETWORK_ETHERNET = bindings::PCI_CLASS_NETWORK_ETHERNET, // 0x020000 190ed78a018SJohn Hubbard NETWORK_TOKEN_RING = bindings::PCI_CLASS_NETWORK_TOKEN_RING, // 0x020100 191ed78a018SJohn Hubbard NETWORK_FDDI = bindings::PCI_CLASS_NETWORK_FDDI, // 0x020200 192ed78a018SJohn Hubbard NETWORK_ATM = bindings::PCI_CLASS_NETWORK_ATM, // 0x020300 193ed78a018SJohn Hubbard NETWORK_OTHER = bindings::PCI_CLASS_NETWORK_OTHER, // 0x028000 194ed78a018SJohn Hubbard 195ed78a018SJohn Hubbard DISPLAY_VGA = bindings::PCI_CLASS_DISPLAY_VGA, // 0x030000 196ed78a018SJohn Hubbard DISPLAY_XGA = bindings::PCI_CLASS_DISPLAY_XGA, // 0x030100 197ed78a018SJohn Hubbard DISPLAY_3D = bindings::PCI_CLASS_DISPLAY_3D, // 0x030200 198ed78a018SJohn Hubbard DISPLAY_OTHER = bindings::PCI_CLASS_DISPLAY_OTHER, // 0x038000 199ed78a018SJohn Hubbard 200ed78a018SJohn Hubbard MULTIMEDIA_VIDEO = bindings::PCI_CLASS_MULTIMEDIA_VIDEO, // 0x040000 201ed78a018SJohn Hubbard MULTIMEDIA_AUDIO = bindings::PCI_CLASS_MULTIMEDIA_AUDIO, // 0x040100 202ed78a018SJohn Hubbard MULTIMEDIA_PHONE = bindings::PCI_CLASS_MULTIMEDIA_PHONE, // 0x040200 203ed78a018SJohn Hubbard MULTIMEDIA_HD_AUDIO = bindings::PCI_CLASS_MULTIMEDIA_HD_AUDIO, // 0x040300 204ed78a018SJohn Hubbard MULTIMEDIA_OTHER = bindings::PCI_CLASS_MULTIMEDIA_OTHER, // 0x048000 205ed78a018SJohn Hubbard 206ed78a018SJohn Hubbard MEMORY_RAM = bindings::PCI_CLASS_MEMORY_RAM, // 0x050000 207ed78a018SJohn Hubbard MEMORY_FLASH = bindings::PCI_CLASS_MEMORY_FLASH, // 0x050100 208ed78a018SJohn Hubbard MEMORY_CXL = bindings::PCI_CLASS_MEMORY_CXL, // 0x050200 209ed78a018SJohn Hubbard MEMORY_OTHER = bindings::PCI_CLASS_MEMORY_OTHER, // 0x058000 210ed78a018SJohn Hubbard 211ed78a018SJohn Hubbard BRIDGE_HOST = bindings::PCI_CLASS_BRIDGE_HOST, // 0x060000 212ed78a018SJohn Hubbard BRIDGE_ISA = bindings::PCI_CLASS_BRIDGE_ISA, // 0x060100 213ed78a018SJohn Hubbard BRIDGE_EISA = bindings::PCI_CLASS_BRIDGE_EISA, // 0x060200 214ed78a018SJohn Hubbard BRIDGE_MC = bindings::PCI_CLASS_BRIDGE_MC, // 0x060300 215ed78a018SJohn Hubbard BRIDGE_PCI_NORMAL = bindings::PCI_CLASS_BRIDGE_PCI_NORMAL, // 0x060400 216ed78a018SJohn Hubbard BRIDGE_PCI_SUBTRACTIVE = bindings::PCI_CLASS_BRIDGE_PCI_SUBTRACTIVE, // 0x060401 217ed78a018SJohn Hubbard BRIDGE_PCMCIA = bindings::PCI_CLASS_BRIDGE_PCMCIA, // 0x060500 218ed78a018SJohn Hubbard BRIDGE_NUBUS = bindings::PCI_CLASS_BRIDGE_NUBUS, // 0x060600 219ed78a018SJohn Hubbard BRIDGE_CARDBUS = bindings::PCI_CLASS_BRIDGE_CARDBUS, // 0x060700 220ed78a018SJohn Hubbard BRIDGE_RACEWAY = bindings::PCI_CLASS_BRIDGE_RACEWAY, // 0x060800 221ed78a018SJohn Hubbard BRIDGE_OTHER = bindings::PCI_CLASS_BRIDGE_OTHER, // 0x068000 222ed78a018SJohn Hubbard 223ed78a018SJohn Hubbard COMMUNICATION_SERIAL = bindings::PCI_CLASS_COMMUNICATION_SERIAL, // 0x070000 224ed78a018SJohn Hubbard COMMUNICATION_PARALLEL = bindings::PCI_CLASS_COMMUNICATION_PARALLEL, // 0x070100 225ed78a018SJohn Hubbard COMMUNICATION_MULTISERIAL = bindings::PCI_CLASS_COMMUNICATION_MULTISERIAL, // 0x070200 226ed78a018SJohn Hubbard COMMUNICATION_MODEM = bindings::PCI_CLASS_COMMUNICATION_MODEM, // 0x070300 227ed78a018SJohn Hubbard COMMUNICATION_OTHER = bindings::PCI_CLASS_COMMUNICATION_OTHER, // 0x078000 228ed78a018SJohn Hubbard 229ed78a018SJohn Hubbard SYSTEM_PIC = bindings::PCI_CLASS_SYSTEM_PIC, // 0x080000 230ed78a018SJohn Hubbard SYSTEM_PIC_IOAPIC = bindings::PCI_CLASS_SYSTEM_PIC_IOAPIC, // 0x080010 231ed78a018SJohn Hubbard SYSTEM_PIC_IOXAPIC = bindings::PCI_CLASS_SYSTEM_PIC_IOXAPIC, // 0x080020 232ed78a018SJohn Hubbard SYSTEM_DMA = bindings::PCI_CLASS_SYSTEM_DMA, // 0x080100 233ed78a018SJohn Hubbard SYSTEM_TIMER = bindings::PCI_CLASS_SYSTEM_TIMER, // 0x080200 234ed78a018SJohn Hubbard SYSTEM_RTC = bindings::PCI_CLASS_SYSTEM_RTC, // 0x080300 235ed78a018SJohn Hubbard SYSTEM_PCI_HOTPLUG = bindings::PCI_CLASS_SYSTEM_PCI_HOTPLUG, // 0x080400 236ed78a018SJohn Hubbard SYSTEM_SDHCI = bindings::PCI_CLASS_SYSTEM_SDHCI, // 0x080500 237ed78a018SJohn Hubbard SYSTEM_RCEC = bindings::PCI_CLASS_SYSTEM_RCEC, // 0x080700 238ed78a018SJohn Hubbard SYSTEM_OTHER = bindings::PCI_CLASS_SYSTEM_OTHER, // 0x088000 239ed78a018SJohn Hubbard 240ed78a018SJohn Hubbard INPUT_KEYBOARD = bindings::PCI_CLASS_INPUT_KEYBOARD, // 0x090000 241ed78a018SJohn Hubbard INPUT_PEN = bindings::PCI_CLASS_INPUT_PEN, // 0x090100 242ed78a018SJohn Hubbard INPUT_MOUSE = bindings::PCI_CLASS_INPUT_MOUSE, // 0x090200 243ed78a018SJohn Hubbard INPUT_SCANNER = bindings::PCI_CLASS_INPUT_SCANNER, // 0x090300 244ed78a018SJohn Hubbard INPUT_GAMEPORT = bindings::PCI_CLASS_INPUT_GAMEPORT, // 0x090400 245ed78a018SJohn Hubbard INPUT_OTHER = bindings::PCI_CLASS_INPUT_OTHER, // 0x098000 246ed78a018SJohn Hubbard 247ed78a018SJohn Hubbard DOCKING_GENERIC = bindings::PCI_CLASS_DOCKING_GENERIC, // 0x0a0000 248ed78a018SJohn Hubbard DOCKING_OTHER = bindings::PCI_CLASS_DOCKING_OTHER, // 0x0a8000 249ed78a018SJohn Hubbard 250ed78a018SJohn Hubbard PROCESSOR_386 = bindings::PCI_CLASS_PROCESSOR_386, // 0x0b0000 251ed78a018SJohn Hubbard PROCESSOR_486 = bindings::PCI_CLASS_PROCESSOR_486, // 0x0b0100 252ed78a018SJohn Hubbard PROCESSOR_PENTIUM = bindings::PCI_CLASS_PROCESSOR_PENTIUM, // 0x0b0200 253ed78a018SJohn Hubbard PROCESSOR_ALPHA = bindings::PCI_CLASS_PROCESSOR_ALPHA, // 0x0b1000 254ed78a018SJohn Hubbard PROCESSOR_POWERPC = bindings::PCI_CLASS_PROCESSOR_POWERPC, // 0x0b2000 255ed78a018SJohn Hubbard PROCESSOR_MIPS = bindings::PCI_CLASS_PROCESSOR_MIPS, // 0x0b3000 256ed78a018SJohn Hubbard PROCESSOR_CO = bindings::PCI_CLASS_PROCESSOR_CO, // 0x0b4000 257ed78a018SJohn Hubbard 258ed78a018SJohn Hubbard SERIAL_FIREWIRE = bindings::PCI_CLASS_SERIAL_FIREWIRE, // 0x0c0000 259ed78a018SJohn Hubbard SERIAL_FIREWIRE_OHCI = bindings::PCI_CLASS_SERIAL_FIREWIRE_OHCI, // 0x0c0010 260ed78a018SJohn Hubbard SERIAL_ACCESS = bindings::PCI_CLASS_SERIAL_ACCESS, // 0x0c0100 261ed78a018SJohn Hubbard SERIAL_SSA = bindings::PCI_CLASS_SERIAL_SSA, // 0x0c0200 262ed78a018SJohn Hubbard SERIAL_USB_UHCI = bindings::PCI_CLASS_SERIAL_USB_UHCI, // 0x0c0300 263ed78a018SJohn Hubbard SERIAL_USB_OHCI = bindings::PCI_CLASS_SERIAL_USB_OHCI, // 0x0c0310 264ed78a018SJohn Hubbard SERIAL_USB_EHCI = bindings::PCI_CLASS_SERIAL_USB_EHCI, // 0x0c0320 265ed78a018SJohn Hubbard SERIAL_USB_XHCI = bindings::PCI_CLASS_SERIAL_USB_XHCI, // 0x0c0330 266ed78a018SJohn Hubbard SERIAL_USB_CDNS = bindings::PCI_CLASS_SERIAL_USB_CDNS, // 0x0c0380 267ed78a018SJohn Hubbard SERIAL_USB_DEVICE = bindings::PCI_CLASS_SERIAL_USB_DEVICE, // 0x0c03fe 268ed78a018SJohn Hubbard SERIAL_FIBER = bindings::PCI_CLASS_SERIAL_FIBER, // 0x0c0400 269ed78a018SJohn Hubbard SERIAL_SMBUS = bindings::PCI_CLASS_SERIAL_SMBUS, // 0x0c0500 270ed78a018SJohn Hubbard SERIAL_IPMI_SMIC = bindings::PCI_CLASS_SERIAL_IPMI_SMIC, // 0x0c0700 271ed78a018SJohn Hubbard SERIAL_IPMI_KCS = bindings::PCI_CLASS_SERIAL_IPMI_KCS, // 0x0c0701 272ed78a018SJohn Hubbard SERIAL_IPMI_BT = bindings::PCI_CLASS_SERIAL_IPMI_BT, // 0x0c0702 273ed78a018SJohn Hubbard 274ed78a018SJohn Hubbard WIRELESS_RF_CONTROLLER = bindings::PCI_CLASS_WIRELESS_RF_CONTROLLER, // 0x0d1000 275ed78a018SJohn Hubbard WIRELESS_WHCI = bindings::PCI_CLASS_WIRELESS_WHCI, // 0x0d1010 276ed78a018SJohn Hubbard 277ed78a018SJohn Hubbard INTELLIGENT_I2O = bindings::PCI_CLASS_INTELLIGENT_I2O, // 0x0e0000 278ed78a018SJohn Hubbard 279ed78a018SJohn Hubbard SATELLITE_TV = bindings::PCI_CLASS_SATELLITE_TV, // 0x0f0000 280ed78a018SJohn Hubbard SATELLITE_AUDIO = bindings::PCI_CLASS_SATELLITE_AUDIO, // 0x0f0100 281ed78a018SJohn Hubbard SATELLITE_VOICE = bindings::PCI_CLASS_SATELLITE_VOICE, // 0x0f0300 282ed78a018SJohn Hubbard SATELLITE_DATA = bindings::PCI_CLASS_SATELLITE_DATA, // 0x0f0400 283ed78a018SJohn Hubbard 284ed78a018SJohn Hubbard CRYPT_NETWORK = bindings::PCI_CLASS_CRYPT_NETWORK, // 0x100000 285ed78a018SJohn Hubbard CRYPT_ENTERTAINMENT = bindings::PCI_CLASS_CRYPT_ENTERTAINMENT, // 0x100100 286ed78a018SJohn Hubbard CRYPT_OTHER = bindings::PCI_CLASS_CRYPT_OTHER, // 0x108000 287ed78a018SJohn Hubbard 288ed78a018SJohn Hubbard SP_DPIO = bindings::PCI_CLASS_SP_DPIO, // 0x110000 289ed78a018SJohn Hubbard SP_OTHER = bindings::PCI_CLASS_SP_OTHER, // 0x118000 290ed78a018SJohn Hubbard 291ed78a018SJohn Hubbard ACCELERATOR_PROCESSING = bindings::PCI_CLASS_ACCELERATOR_PROCESSING, // 0x120000 292ed78a018SJohn Hubbard 293ed78a018SJohn Hubbard OTHERS = bindings::PCI_CLASS_OTHERS, // 0xff0000 294ed78a018SJohn Hubbard } 2955e20962aSJohn Hubbard 2965e20962aSJohn Hubbard define_all_pci_vendors! { 2975e20962aSJohn Hubbard PCI_SIG = bindings::PCI_VENDOR_ID_PCI_SIG, // 0x0001 2985e20962aSJohn Hubbard LOONGSON = bindings::PCI_VENDOR_ID_LOONGSON, // 0x0014 2995e20962aSJohn Hubbard SOLIDIGM = bindings::PCI_VENDOR_ID_SOLIDIGM, // 0x025e 3005e20962aSJohn Hubbard TTTECH = bindings::PCI_VENDOR_ID_TTTECH, // 0x0357 3015e20962aSJohn Hubbard DYNALINK = bindings::PCI_VENDOR_ID_DYNALINK, // 0x0675 3025e20962aSJohn Hubbard UBIQUITI = bindings::PCI_VENDOR_ID_UBIQUITI, // 0x0777 3035e20962aSJohn Hubbard BERKOM = bindings::PCI_VENDOR_ID_BERKOM, // 0x0871 3045e20962aSJohn Hubbard ITTIM = bindings::PCI_VENDOR_ID_ITTIM, // 0x0b48 3055e20962aSJohn Hubbard COMPAQ = bindings::PCI_VENDOR_ID_COMPAQ, // 0x0e11 3065e20962aSJohn Hubbard LSI_LOGIC = bindings::PCI_VENDOR_ID_LSI_LOGIC, // 0x1000 3075e20962aSJohn Hubbard ATI = bindings::PCI_VENDOR_ID_ATI, // 0x1002 3085e20962aSJohn Hubbard VLSI = bindings::PCI_VENDOR_ID_VLSI, // 0x1004 3095e20962aSJohn Hubbard ADL = bindings::PCI_VENDOR_ID_ADL, // 0x1005 3105e20962aSJohn Hubbard NS = bindings::PCI_VENDOR_ID_NS, // 0x100b 3115e20962aSJohn Hubbard TSENG = bindings::PCI_VENDOR_ID_TSENG, // 0x100c 3125e20962aSJohn Hubbard WEITEK = bindings::PCI_VENDOR_ID_WEITEK, // 0x100e 3135e20962aSJohn Hubbard DEC = bindings::PCI_VENDOR_ID_DEC, // 0x1011 3145e20962aSJohn Hubbard CIRRUS = bindings::PCI_VENDOR_ID_CIRRUS, // 0x1013 3155e20962aSJohn Hubbard IBM = bindings::PCI_VENDOR_ID_IBM, // 0x1014 3165e20962aSJohn Hubbard UNISYS = bindings::PCI_VENDOR_ID_UNISYS, // 0x1018 3175e20962aSJohn Hubbard COMPEX2 = bindings::PCI_VENDOR_ID_COMPEX2, // 0x101a 3185e20962aSJohn Hubbard WD = bindings::PCI_VENDOR_ID_WD, // 0x101c 3195e20962aSJohn Hubbard AMI = bindings::PCI_VENDOR_ID_AMI, // 0x101e 3205e20962aSJohn Hubbard AMD = bindings::PCI_VENDOR_ID_AMD, // 0x1022 3215e20962aSJohn Hubbard TRIDENT = bindings::PCI_VENDOR_ID_TRIDENT, // 0x1023 3225e20962aSJohn Hubbard AI = bindings::PCI_VENDOR_ID_AI, // 0x1025 3235e20962aSJohn Hubbard DELL = bindings::PCI_VENDOR_ID_DELL, // 0x1028 3245e20962aSJohn Hubbard MATROX = bindings::PCI_VENDOR_ID_MATROX, // 0x102B 3255e20962aSJohn Hubbard MOBILITY_ELECTRONICS = bindings::PCI_VENDOR_ID_MOBILITY_ELECTRONICS, // 0x14f2 3265e20962aSJohn Hubbard CT = bindings::PCI_VENDOR_ID_CT, // 0x102c 3275e20962aSJohn Hubbard MIRO = bindings::PCI_VENDOR_ID_MIRO, // 0x1031 3285e20962aSJohn Hubbard NEC = bindings::PCI_VENDOR_ID_NEC, // 0x1033 3295e20962aSJohn Hubbard FD = bindings::PCI_VENDOR_ID_FD, // 0x1036 3305e20962aSJohn Hubbard SI = bindings::PCI_VENDOR_ID_SI, // 0x1039 3315e20962aSJohn Hubbard HP = bindings::PCI_VENDOR_ID_HP, // 0x103c 3325e20962aSJohn Hubbard HP_3PAR = bindings::PCI_VENDOR_ID_HP_3PAR, // 0x1590 3335e20962aSJohn Hubbard PCTECH = bindings::PCI_VENDOR_ID_PCTECH, // 0x1042 3345e20962aSJohn Hubbard ASUSTEK = bindings::PCI_VENDOR_ID_ASUSTEK, // 0x1043 3355e20962aSJohn Hubbard DPT = bindings::PCI_VENDOR_ID_DPT, // 0x1044 3365e20962aSJohn Hubbard OPTI = bindings::PCI_VENDOR_ID_OPTI, // 0x1045 3375e20962aSJohn Hubbard ELSA = bindings::PCI_VENDOR_ID_ELSA, // 0x1048 3385e20962aSJohn Hubbard STMICRO = bindings::PCI_VENDOR_ID_STMICRO, // 0x104A 3395e20962aSJohn Hubbard BUSLOGIC = bindings::PCI_VENDOR_ID_BUSLOGIC, // 0x104B 3405e20962aSJohn Hubbard TI = bindings::PCI_VENDOR_ID_TI, // 0x104c 3415e20962aSJohn Hubbard SONY = bindings::PCI_VENDOR_ID_SONY, // 0x104d 3425e20962aSJohn Hubbard WINBOND2 = bindings::PCI_VENDOR_ID_WINBOND2, // 0x1050 3435e20962aSJohn Hubbard ANIGMA = bindings::PCI_VENDOR_ID_ANIGMA, // 0x1051 3445e20962aSJohn Hubbard EFAR = bindings::PCI_VENDOR_ID_EFAR, // 0x1055 3455e20962aSJohn Hubbard MOTOROLA = bindings::PCI_VENDOR_ID_MOTOROLA, // 0x1057 3465e20962aSJohn Hubbard PROMISE = bindings::PCI_VENDOR_ID_PROMISE, // 0x105a 3475e20962aSJohn Hubbard FOXCONN = bindings::PCI_VENDOR_ID_FOXCONN, // 0x105b 3485e20962aSJohn Hubbard UMC = bindings::PCI_VENDOR_ID_UMC, // 0x1060 3495e20962aSJohn Hubbard PICOPOWER = bindings::PCI_VENDOR_ID_PICOPOWER, // 0x1066 3505e20962aSJohn Hubbard MYLEX = bindings::PCI_VENDOR_ID_MYLEX, // 0x1069 3515e20962aSJohn Hubbard APPLE = bindings::PCI_VENDOR_ID_APPLE, // 0x106b 3525e20962aSJohn Hubbard YAMAHA = bindings::PCI_VENDOR_ID_YAMAHA, // 0x1073 3535e20962aSJohn Hubbard QLOGIC = bindings::PCI_VENDOR_ID_QLOGIC, // 0x1077 3545e20962aSJohn Hubbard CYRIX = bindings::PCI_VENDOR_ID_CYRIX, // 0x1078 3555e20962aSJohn Hubbard CONTAQ = bindings::PCI_VENDOR_ID_CONTAQ, // 0x1080 3565e20962aSJohn Hubbard OLICOM = bindings::PCI_VENDOR_ID_OLICOM, // 0x108d 3575e20962aSJohn Hubbard SUN = bindings::PCI_VENDOR_ID_SUN, // 0x108e 3585e20962aSJohn Hubbard NI = bindings::PCI_VENDOR_ID_NI, // 0x1093 3595e20962aSJohn Hubbard CMD = bindings::PCI_VENDOR_ID_CMD, // 0x1095 3605e20962aSJohn Hubbard BROOKTREE = bindings::PCI_VENDOR_ID_BROOKTREE, // 0x109e 3615e20962aSJohn Hubbard SGI = bindings::PCI_VENDOR_ID_SGI, // 0x10a9 3625e20962aSJohn Hubbard WINBOND = bindings::PCI_VENDOR_ID_WINBOND, // 0x10ad 3635e20962aSJohn Hubbard PLX = bindings::PCI_VENDOR_ID_PLX, // 0x10b5 3645e20962aSJohn Hubbard MADGE = bindings::PCI_VENDOR_ID_MADGE, // 0x10b6 3655e20962aSJohn Hubbard THREECOM = bindings::PCI_VENDOR_ID_3COM, // 0x10b7 3665e20962aSJohn Hubbard AL = bindings::PCI_VENDOR_ID_AL, // 0x10b9 3675e20962aSJohn Hubbard NEOMAGIC = bindings::PCI_VENDOR_ID_NEOMAGIC, // 0x10c8 3685e20962aSJohn Hubbard TCONRAD = bindings::PCI_VENDOR_ID_TCONRAD, // 0x10da 3695e20962aSJohn Hubbard ROHM = bindings::PCI_VENDOR_ID_ROHM, // 0x10db 3705e20962aSJohn Hubbard NVIDIA = bindings::PCI_VENDOR_ID_NVIDIA, // 0x10de 3715e20962aSJohn Hubbard IMS = bindings::PCI_VENDOR_ID_IMS, // 0x10e0 3725e20962aSJohn Hubbard AMCC = bindings::PCI_VENDOR_ID_AMCC, // 0x10e8 3735e20962aSJohn Hubbard AMPERE = bindings::PCI_VENDOR_ID_AMPERE, // 0x1def 3745e20962aSJohn Hubbard INTERG = bindings::PCI_VENDOR_ID_INTERG, // 0x10ea 3755e20962aSJohn Hubbard REALTEK = bindings::PCI_VENDOR_ID_REALTEK, // 0x10ec 3765e20962aSJohn Hubbard XILINX = bindings::PCI_VENDOR_ID_XILINX, // 0x10ee 3775e20962aSJohn Hubbard INIT = bindings::PCI_VENDOR_ID_INIT, // 0x1101 3785e20962aSJohn Hubbard CREATIVE = bindings::PCI_VENDOR_ID_CREATIVE, // 0x1102 3795e20962aSJohn Hubbard TTI = bindings::PCI_VENDOR_ID_TTI, // 0x1103 3805e20962aSJohn Hubbard SIGMA = bindings::PCI_VENDOR_ID_SIGMA, // 0x1105 3815e20962aSJohn Hubbard VIA = bindings::PCI_VENDOR_ID_VIA, // 0x1106 3825e20962aSJohn Hubbard SIEMENS = bindings::PCI_VENDOR_ID_SIEMENS, // 0x110A 3835e20962aSJohn Hubbard VORTEX = bindings::PCI_VENDOR_ID_VORTEX, // 0x1119 3845e20962aSJohn Hubbard EF = bindings::PCI_VENDOR_ID_EF, // 0x111a 3855e20962aSJohn Hubbard IDT = bindings::PCI_VENDOR_ID_IDT, // 0x111d 3865e20962aSJohn Hubbard FORE = bindings::PCI_VENDOR_ID_FORE, // 0x1127 3875e20962aSJohn Hubbard PHILIPS = bindings::PCI_VENDOR_ID_PHILIPS, // 0x1131 3885e20962aSJohn Hubbard EICON = bindings::PCI_VENDOR_ID_EICON, // 0x1133 3895e20962aSJohn Hubbard CISCO = bindings::PCI_VENDOR_ID_CISCO, // 0x1137 3905e20962aSJohn Hubbard ZIATECH = bindings::PCI_VENDOR_ID_ZIATECH, // 0x1138 3915e20962aSJohn Hubbard SYSKONNECT = bindings::PCI_VENDOR_ID_SYSKONNECT, // 0x1148 3925e20962aSJohn Hubbard DIGI = bindings::PCI_VENDOR_ID_DIGI, // 0x114f 3935e20962aSJohn Hubbard XIRCOM = bindings::PCI_VENDOR_ID_XIRCOM, // 0x115d 3945e20962aSJohn Hubbard SERVERWORKS = bindings::PCI_VENDOR_ID_SERVERWORKS, // 0x1166 3955e20962aSJohn Hubbard ALTERA = bindings::PCI_VENDOR_ID_ALTERA, // 0x1172 3965e20962aSJohn Hubbard SBE = bindings::PCI_VENDOR_ID_SBE, // 0x1176 3975e20962aSJohn Hubbard TOSHIBA = bindings::PCI_VENDOR_ID_TOSHIBA, // 0x1179 3985e20962aSJohn Hubbard TOSHIBA_2 = bindings::PCI_VENDOR_ID_TOSHIBA_2, // 0x102f 3995e20962aSJohn Hubbard ATTO = bindings::PCI_VENDOR_ID_ATTO, // 0x117c 4005e20962aSJohn Hubbard RICOH = bindings::PCI_VENDOR_ID_RICOH, // 0x1180 4015e20962aSJohn Hubbard DLINK = bindings::PCI_VENDOR_ID_DLINK, // 0x1186 4025e20962aSJohn Hubbard ARTOP = bindings::PCI_VENDOR_ID_ARTOP, // 0x1191 4035e20962aSJohn Hubbard ZEITNET = bindings::PCI_VENDOR_ID_ZEITNET, // 0x1193 4045e20962aSJohn Hubbard FUJITSU_ME = bindings::PCI_VENDOR_ID_FUJITSU_ME, // 0x119e 4055e20962aSJohn Hubbard MARVELL = bindings::PCI_VENDOR_ID_MARVELL, // 0x11ab 4065e20962aSJohn Hubbard MARVELL_EXT = bindings::PCI_VENDOR_ID_MARVELL_EXT, // 0x1b4b 4075e20962aSJohn Hubbard V3 = bindings::PCI_VENDOR_ID_V3, // 0x11b0 4085e20962aSJohn Hubbard ATT = bindings::PCI_VENDOR_ID_ATT, // 0x11c1 4095e20962aSJohn Hubbard SPECIALIX = bindings::PCI_VENDOR_ID_SPECIALIX, // 0x11cb 4105e20962aSJohn Hubbard ANALOG_DEVICES = bindings::PCI_VENDOR_ID_ANALOG_DEVICES, // 0x11d4 4115e20962aSJohn Hubbard ZORAN = bindings::PCI_VENDOR_ID_ZORAN, // 0x11de 4125e20962aSJohn Hubbard COMPEX = bindings::PCI_VENDOR_ID_COMPEX, // 0x11f6 4135e20962aSJohn Hubbard MICROSEMI = bindings::PCI_VENDOR_ID_MICROSEMI, // 0x11f8 4145e20962aSJohn Hubbard RP = bindings::PCI_VENDOR_ID_RP, // 0x11fe 4155e20962aSJohn Hubbard CYCLADES = bindings::PCI_VENDOR_ID_CYCLADES, // 0x120e 4165e20962aSJohn Hubbard ESSENTIAL = bindings::PCI_VENDOR_ID_ESSENTIAL, // 0x120f 4175e20962aSJohn Hubbard O2 = bindings::PCI_VENDOR_ID_O2, // 0x1217 4185e20962aSJohn Hubbard THREEDX = bindings::PCI_VENDOR_ID_3DFX, // 0x121a 4195e20962aSJohn Hubbard AVM = bindings::PCI_VENDOR_ID_AVM, // 0x1244 4205e20962aSJohn Hubbard STALLION = bindings::PCI_VENDOR_ID_STALLION, // 0x124d 4215e20962aSJohn Hubbard AT = bindings::PCI_VENDOR_ID_AT, // 0x1259 4225e20962aSJohn Hubbard ASIX = bindings::PCI_VENDOR_ID_ASIX, // 0x125b 4235e20962aSJohn Hubbard ESS = bindings::PCI_VENDOR_ID_ESS, // 0x125d 4245e20962aSJohn Hubbard SATSAGEM = bindings::PCI_VENDOR_ID_SATSAGEM, // 0x1267 4255e20962aSJohn Hubbard ENSONIQ = bindings::PCI_VENDOR_ID_ENSONIQ, // 0x1274 4265e20962aSJohn Hubbard TRANSMETA = bindings::PCI_VENDOR_ID_TRANSMETA, // 0x1279 4275e20962aSJohn Hubbard ROCKWELL = bindings::PCI_VENDOR_ID_ROCKWELL, // 0x127A 4285e20962aSJohn Hubbard ITE = bindings::PCI_VENDOR_ID_ITE, // 0x1283 4295e20962aSJohn Hubbard ALTEON = bindings::PCI_VENDOR_ID_ALTEON, // 0x12ae 4305e20962aSJohn Hubbard NVIDIA_SGS = bindings::PCI_VENDOR_ID_NVIDIA_SGS, // 0x12d2 4315e20962aSJohn Hubbard PERICOM = bindings::PCI_VENDOR_ID_PERICOM, // 0x12D8 4325e20962aSJohn Hubbard AUREAL = bindings::PCI_VENDOR_ID_AUREAL, // 0x12eb 4335e20962aSJohn Hubbard ELECTRONICDESIGNGMBH = bindings::PCI_VENDOR_ID_ELECTRONICDESIGNGMBH, // 0x12f8 4345e20962aSJohn Hubbard ESDGMBH = bindings::PCI_VENDOR_ID_ESDGMBH, // 0x12fe 4355e20962aSJohn Hubbard CB = bindings::PCI_VENDOR_ID_CB, // 0x1307 4365e20962aSJohn Hubbard SIIG = bindings::PCI_VENDOR_ID_SIIG, // 0x131f 4375e20962aSJohn Hubbard RADISYS = bindings::PCI_VENDOR_ID_RADISYS, // 0x1331 4385e20962aSJohn Hubbard MICRO_MEMORY = bindings::PCI_VENDOR_ID_MICRO_MEMORY, // 0x1332 4395e20962aSJohn Hubbard DOMEX = bindings::PCI_VENDOR_ID_DOMEX, // 0x134a 4405e20962aSJohn Hubbard INTASHIELD = bindings::PCI_VENDOR_ID_INTASHIELD, // 0x135a 4415e20962aSJohn Hubbard QUATECH = bindings::PCI_VENDOR_ID_QUATECH, // 0x135C 4425e20962aSJohn Hubbard SEALEVEL = bindings::PCI_VENDOR_ID_SEALEVEL, // 0x135e 4435e20962aSJohn Hubbard HYPERCOPE = bindings::PCI_VENDOR_ID_HYPERCOPE, // 0x1365 4445e20962aSJohn Hubbard DIGIGRAM = bindings::PCI_VENDOR_ID_DIGIGRAM, // 0x1369 4455e20962aSJohn Hubbard KAWASAKI = bindings::PCI_VENDOR_ID_KAWASAKI, // 0x136b 4465e20962aSJohn Hubbard CNET = bindings::PCI_VENDOR_ID_CNET, // 0x1371 4475e20962aSJohn Hubbard LMC = bindings::PCI_VENDOR_ID_LMC, // 0x1376 4485e20962aSJohn Hubbard NETGEAR = bindings::PCI_VENDOR_ID_NETGEAR, // 0x1385 4495e20962aSJohn Hubbard APPLICOM = bindings::PCI_VENDOR_ID_APPLICOM, // 0x1389 4505e20962aSJohn Hubbard MOXA = bindings::PCI_VENDOR_ID_MOXA, // 0x1393 4515e20962aSJohn Hubbard CCD = bindings::PCI_VENDOR_ID_CCD, // 0x1397 4525e20962aSJohn Hubbard EXAR = bindings::PCI_VENDOR_ID_EXAR, // 0x13a8 4535e20962aSJohn Hubbard MICROGATE = bindings::PCI_VENDOR_ID_MICROGATE, // 0x13c0 4545e20962aSJohn Hubbard THREEWARE = bindings::PCI_VENDOR_ID_3WARE, // 0x13C1 4555e20962aSJohn Hubbard IOMEGA = bindings::PCI_VENDOR_ID_IOMEGA, // 0x13ca 4565e20962aSJohn Hubbard ABOCOM = bindings::PCI_VENDOR_ID_ABOCOM, // 0x13D1 4575e20962aSJohn Hubbard SUNDANCE = bindings::PCI_VENDOR_ID_SUNDANCE, // 0x13f0 4585e20962aSJohn Hubbard CMEDIA = bindings::PCI_VENDOR_ID_CMEDIA, // 0x13f6 4595e20962aSJohn Hubbard ADVANTECH = bindings::PCI_VENDOR_ID_ADVANTECH, // 0x13fe 4605e20962aSJohn Hubbard MEILHAUS = bindings::PCI_VENDOR_ID_MEILHAUS, // 0x1402 4615e20962aSJohn Hubbard LAVA = bindings::PCI_VENDOR_ID_LAVA, // 0x1407 4625e20962aSJohn Hubbard TIMEDIA = bindings::PCI_VENDOR_ID_TIMEDIA, // 0x1409 4635e20962aSJohn Hubbard ICE = bindings::PCI_VENDOR_ID_ICE, // 0x1412 4645e20962aSJohn Hubbard MICROSOFT = bindings::PCI_VENDOR_ID_MICROSOFT, // 0x1414 4655e20962aSJohn Hubbard OXSEMI = bindings::PCI_VENDOR_ID_OXSEMI, // 0x1415 4665e20962aSJohn Hubbard CHELSIO = bindings::PCI_VENDOR_ID_CHELSIO, // 0x1425 4675e20962aSJohn Hubbard EDIMAX = bindings::PCI_VENDOR_ID_EDIMAX, // 0x1432 4685e20962aSJohn Hubbard ADLINK = bindings::PCI_VENDOR_ID_ADLINK, // 0x144a 4695e20962aSJohn Hubbard SAMSUNG = bindings::PCI_VENDOR_ID_SAMSUNG, // 0x144d 4705e20962aSJohn Hubbard GIGABYTE = bindings::PCI_VENDOR_ID_GIGABYTE, // 0x1458 4715e20962aSJohn Hubbard AMBIT = bindings::PCI_VENDOR_ID_AMBIT, // 0x1468 4725e20962aSJohn Hubbard MYRICOM = bindings::PCI_VENDOR_ID_MYRICOM, // 0x14c1 4735e20962aSJohn Hubbard MEDIATEK = bindings::PCI_VENDOR_ID_MEDIATEK, // 0x14c3 4745e20962aSJohn Hubbard TITAN = bindings::PCI_VENDOR_ID_TITAN, // 0x14D2 4755e20962aSJohn Hubbard PANACOM = bindings::PCI_VENDOR_ID_PANACOM, // 0x14d4 4765e20962aSJohn Hubbard SIPACKETS = bindings::PCI_VENDOR_ID_SIPACKETS, // 0x14d9 4775e20962aSJohn Hubbard AFAVLAB = bindings::PCI_VENDOR_ID_AFAVLAB, // 0x14db 4785e20962aSJohn Hubbard AMPLICON = bindings::PCI_VENDOR_ID_AMPLICON, // 0x14dc 4795e20962aSJohn Hubbard BCM_GVC = bindings::PCI_VENDOR_ID_BCM_GVC, // 0x14a4 4805e20962aSJohn Hubbard BROADCOM = bindings::PCI_VENDOR_ID_BROADCOM, // 0x14e4 4815e20962aSJohn Hubbard TOPIC = bindings::PCI_VENDOR_ID_TOPIC, // 0x151f 4825e20962aSJohn Hubbard MAINPINE = bindings::PCI_VENDOR_ID_MAINPINE, // 0x1522 4835e20962aSJohn Hubbard ENE = bindings::PCI_VENDOR_ID_ENE, // 0x1524 4845e20962aSJohn Hubbard SYBA = bindings::PCI_VENDOR_ID_SYBA, // 0x1592 4855e20962aSJohn Hubbard MORETON = bindings::PCI_VENDOR_ID_MORETON, // 0x15aa 4865e20962aSJohn Hubbard VMWARE = bindings::PCI_VENDOR_ID_VMWARE, // 0x15ad 4875e20962aSJohn Hubbard ZOLTRIX = bindings::PCI_VENDOR_ID_ZOLTRIX, // 0x15b0 4885e20962aSJohn Hubbard MELLANOX = bindings::PCI_VENDOR_ID_MELLANOX, // 0x15b3 4895e20962aSJohn Hubbard DFI = bindings::PCI_VENDOR_ID_DFI, // 0x15bd 4905e20962aSJohn Hubbard QUICKNET = bindings::PCI_VENDOR_ID_QUICKNET, // 0x15e2 4915e20962aSJohn Hubbard ADDIDATA = bindings::PCI_VENDOR_ID_ADDIDATA, // 0x15B8 4925e20962aSJohn Hubbard PDC = bindings::PCI_VENDOR_ID_PDC, // 0x15e9 4935e20962aSJohn Hubbard FARSITE = bindings::PCI_VENDOR_ID_FARSITE, // 0x1619 4945e20962aSJohn Hubbard ARIMA = bindings::PCI_VENDOR_ID_ARIMA, // 0x161f 4955e20962aSJohn Hubbard BROCADE = bindings::PCI_VENDOR_ID_BROCADE, // 0x1657 4965e20962aSJohn Hubbard SIBYTE = bindings::PCI_VENDOR_ID_SIBYTE, // 0x166d 4975e20962aSJohn Hubbard ATHEROS = bindings::PCI_VENDOR_ID_ATHEROS, // 0x168c 4985e20962aSJohn Hubbard NETCELL = bindings::PCI_VENDOR_ID_NETCELL, // 0x169c 4995e20962aSJohn Hubbard CENATEK = bindings::PCI_VENDOR_ID_CENATEK, // 0x16CA 5005e20962aSJohn Hubbard SYNOPSYS = bindings::PCI_VENDOR_ID_SYNOPSYS, // 0x16c3 5015e20962aSJohn Hubbard USR = bindings::PCI_VENDOR_ID_USR, // 0x16ec 5025e20962aSJohn Hubbard VITESSE = bindings::PCI_VENDOR_ID_VITESSE, // 0x1725 5035e20962aSJohn Hubbard LINKSYS = bindings::PCI_VENDOR_ID_LINKSYS, // 0x1737 5045e20962aSJohn Hubbard ALTIMA = bindings::PCI_VENDOR_ID_ALTIMA, // 0x173b 5055e20962aSJohn Hubbard CAVIUM = bindings::PCI_VENDOR_ID_CAVIUM, // 0x177d 5065e20962aSJohn Hubbard TECHWELL = bindings::PCI_VENDOR_ID_TECHWELL, // 0x1797 5075e20962aSJohn Hubbard BELKIN = bindings::PCI_VENDOR_ID_BELKIN, // 0x1799 5085e20962aSJohn Hubbard RDC = bindings::PCI_VENDOR_ID_RDC, // 0x17f3 5095e20962aSJohn Hubbard GLI = bindings::PCI_VENDOR_ID_GLI, // 0x17a0 5105e20962aSJohn Hubbard LENOVO = bindings::PCI_VENDOR_ID_LENOVO, // 0x17aa 5115e20962aSJohn Hubbard QCOM = bindings::PCI_VENDOR_ID_QCOM, // 0x17cb 5125e20962aSJohn Hubbard CDNS = bindings::PCI_VENDOR_ID_CDNS, // 0x17cd 5135e20962aSJohn Hubbard ARECA = bindings::PCI_VENDOR_ID_ARECA, // 0x17d3 5145e20962aSJohn Hubbard S2IO = bindings::PCI_VENDOR_ID_S2IO, // 0x17d5 5155e20962aSJohn Hubbard SITECOM = bindings::PCI_VENDOR_ID_SITECOM, // 0x182d 5165e20962aSJohn Hubbard TOPSPIN = bindings::PCI_VENDOR_ID_TOPSPIN, // 0x1867 5175e20962aSJohn Hubbard COMMTECH = bindings::PCI_VENDOR_ID_COMMTECH, // 0x18f7 5185e20962aSJohn Hubbard SILAN = bindings::PCI_VENDOR_ID_SILAN, // 0x1904 5195e20962aSJohn Hubbard RENESAS = bindings::PCI_VENDOR_ID_RENESAS, // 0x1912 5205e20962aSJohn Hubbard SOLARFLARE = bindings::PCI_VENDOR_ID_SOLARFLARE, // 0x1924 5215e20962aSJohn Hubbard TDI = bindings::PCI_VENDOR_ID_TDI, // 0x192E 5225e20962aSJohn Hubbard NXP = bindings::PCI_VENDOR_ID_NXP, // 0x1957 5235e20962aSJohn Hubbard PASEMI = bindings::PCI_VENDOR_ID_PASEMI, // 0x1959 5245e20962aSJohn Hubbard ATTANSIC = bindings::PCI_VENDOR_ID_ATTANSIC, // 0x1969 5255e20962aSJohn Hubbard JMICRON = bindings::PCI_VENDOR_ID_JMICRON, // 0x197B 5265e20962aSJohn Hubbard KORENIX = bindings::PCI_VENDOR_ID_KORENIX, // 0x1982 5275e20962aSJohn Hubbard HUAWEI = bindings::PCI_VENDOR_ID_HUAWEI, // 0x19e5 5285e20962aSJohn Hubbard NETRONOME = bindings::PCI_VENDOR_ID_NETRONOME, // 0x19ee 5295e20962aSJohn Hubbard QMI = bindings::PCI_VENDOR_ID_QMI, // 0x1a32 5305e20962aSJohn Hubbard AZWAVE = bindings::PCI_VENDOR_ID_AZWAVE, // 0x1a3b 5315e20962aSJohn Hubbard REDHAT_QUMRANET = bindings::PCI_VENDOR_ID_REDHAT_QUMRANET, // 0x1af4 5325e20962aSJohn Hubbard ASMEDIA = bindings::PCI_VENDOR_ID_ASMEDIA, // 0x1b21 5335e20962aSJohn Hubbard REDHAT = bindings::PCI_VENDOR_ID_REDHAT, // 0x1b36 5345e20962aSJohn Hubbard WCHIC = bindings::PCI_VENDOR_ID_WCHIC, // 0x1c00 5355e20962aSJohn Hubbard SILICOM_DENMARK = bindings::PCI_VENDOR_ID_SILICOM_DENMARK, // 0x1c2c 5365e20962aSJohn Hubbard AMAZON_ANNAPURNA_LABS = bindings::PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, // 0x1c36 5375e20962aSJohn Hubbard CIRCUITCO = bindings::PCI_VENDOR_ID_CIRCUITCO, // 0x1cc8 5385e20962aSJohn Hubbard AMAZON = bindings::PCI_VENDOR_ID_AMAZON, // 0x1d0f 5395e20962aSJohn Hubbard ZHAOXIN = bindings::PCI_VENDOR_ID_ZHAOXIN, // 0x1d17 5405e20962aSJohn Hubbard ROCKCHIP = bindings::PCI_VENDOR_ID_ROCKCHIP, // 0x1d87 5415e20962aSJohn Hubbard HYGON = bindings::PCI_VENDOR_ID_HYGON, // 0x1d94 5425e20962aSJohn Hubbard META = bindings::PCI_VENDOR_ID_META, // 0x1d9b 5435e20962aSJohn Hubbard FUNGIBLE = bindings::PCI_VENDOR_ID_FUNGIBLE, // 0x1dad 5445e20962aSJohn Hubbard HXT = bindings::PCI_VENDOR_ID_HXT, // 0x1dbf 5455e20962aSJohn Hubbard TEKRAM = bindings::PCI_VENDOR_ID_TEKRAM, // 0x1de1 5465e20962aSJohn Hubbard RPI = bindings::PCI_VENDOR_ID_RPI, // 0x1de4 5475e20962aSJohn Hubbard ALIBABA = bindings::PCI_VENDOR_ID_ALIBABA, // 0x1ded 5485e20962aSJohn Hubbard CXL = bindings::PCI_VENDOR_ID_CXL, // 0x1e98 5495e20962aSJohn Hubbard TEHUTI = bindings::PCI_VENDOR_ID_TEHUTI, // 0x1fc9 5505e20962aSJohn Hubbard SUNIX = bindings::PCI_VENDOR_ID_SUNIX, // 0x1fd4 5515e20962aSJohn Hubbard HINT = bindings::PCI_VENDOR_ID_HINT, // 0x3388 5525e20962aSJohn Hubbard THREEDLABS = bindings::PCI_VENDOR_ID_3DLABS, // 0x3d3d 5535e20962aSJohn Hubbard NETXEN = bindings::PCI_VENDOR_ID_NETXEN, // 0x4040 5545e20962aSJohn Hubbard AKS = bindings::PCI_VENDOR_ID_AKS, // 0x416c 5555e20962aSJohn Hubbard WCHCN = bindings::PCI_VENDOR_ID_WCHCN, // 0x4348 5565e20962aSJohn Hubbard ACCESSIO = bindings::PCI_VENDOR_ID_ACCESSIO, // 0x494f 5575e20962aSJohn Hubbard S3 = bindings::PCI_VENDOR_ID_S3, // 0x5333 5585e20962aSJohn Hubbard DUNORD = bindings::PCI_VENDOR_ID_DUNORD, // 0x5544 5595e20962aSJohn Hubbard DCI = bindings::PCI_VENDOR_ID_DCI, // 0x6666 5605e20962aSJohn Hubbard GLENFLY = bindings::PCI_VENDOR_ID_GLENFLY, // 0x6766 5615e20962aSJohn Hubbard INTEL = bindings::PCI_VENDOR_ID_INTEL, // 0x8086 5625e20962aSJohn Hubbard WANGXUN = bindings::PCI_VENDOR_ID_WANGXUN, // 0x8088 5635e20962aSJohn Hubbard SCALEMP = bindings::PCI_VENDOR_ID_SCALEMP, // 0x8686 5645e20962aSJohn Hubbard COMPUTONE = bindings::PCI_VENDOR_ID_COMPUTONE, // 0x8e0e 5655e20962aSJohn Hubbard KTI = bindings::PCI_VENDOR_ID_KTI, // 0x8e2e 5665e20962aSJohn Hubbard ADAPTEC = bindings::PCI_VENDOR_ID_ADAPTEC, // 0x9004 5675e20962aSJohn Hubbard ADAPTEC2 = bindings::PCI_VENDOR_ID_ADAPTEC2, // 0x9005 5685e20962aSJohn Hubbard HOLTEK = bindings::PCI_VENDOR_ID_HOLTEK, // 0x9412 5695e20962aSJohn Hubbard NETMOS = bindings::PCI_VENDOR_ID_NETMOS, // 0x9710 5705e20962aSJohn Hubbard THREECOM_2 = bindings::PCI_VENDOR_ID_3COM_2, // 0xa727 5715e20962aSJohn Hubbard SOLIDRUN = bindings::PCI_VENDOR_ID_SOLIDRUN, // 0xd063 5725e20962aSJohn Hubbard DIGIUM = bindings::PCI_VENDOR_ID_DIGIUM, // 0xd161 5735e20962aSJohn Hubbard TIGERJET = bindings::PCI_VENDOR_ID_TIGERJET, // 0xe159 5745e20962aSJohn Hubbard XILINX_RME = bindings::PCI_VENDOR_ID_XILINX_RME, // 0xea60 5755e20962aSJohn Hubbard XEN = bindings::PCI_VENDOR_ID_XEN, // 0x5853 5765e20962aSJohn Hubbard OCZ = bindings::PCI_VENDOR_ID_OCZ, // 0x1b85 5775e20962aSJohn Hubbard NCUBE = bindings::PCI_VENDOR_ID_NCUBE, // 0x10ff 5785e20962aSJohn Hubbard } 579