// Copyright 2025 Richard Hughes <richard@hughsie.com>
// SPDX-License-Identifier: LGPL-2.1-or-later

enum FuPciDeviceClassBase {
    Old,
    Storage,
    Network,
    Display,
    Multimedia,
    Memory,
    Bridge,
    SimpleCommunication,
    System,
    Input,
    Docking,
    Processor,
    Serial,
    Wireless,
    Intelligent,
    Satellite,
    Encryption,
    Signal,
    Accelerator,
    NonEssential,
    Undefined = 0xFF,
}

enum FuPciVendorId {
    Intel = 0x8086,
}

enum FuPciDeviceClassCode {
    Unknown = 0x0000,
    UnknownVga = 0x0001,
    StorageScsi = 0x0100,
    StorageIde = 0x0101,
    StorageFloppy = 0x0102,
    StorageIpi = 0x0103,
    StorageRaid = 0x0104,
    StorageAta = 0x0105,
    StorageSata = 0x0106,
    StorageSas = 0x0107,
    StorageNvm = 0x0108,
    StorageUfs = 0x0109,
    StorageOther = 0x0180,
    NetworkEthernet = 0x0200,
    NetworkTokenRing = 0x0201,
    NetworkFddi = 0x0202,
    NetworkAtm = 0x0203,
    NetworkIsdn = 0x0204,
    NetworkWorldflip = 0x0205,
    NetworkPicmg = 0x0206,
    NetworkInfiniband = 0x0207,
    NetworkFabric = 0x0208,
    NetworkOther = 0x0280,
    DisplayVga = 0x0300,
    DisplayXga = 0x0301,
    Display3D = 0x0302,
    DisplayOther = 0x0380,
    MultimediaVideo = 0x0400,
    MultimediaAudio = 0x0401,
    MultimediaPhone = 0x0402,
    MultimediaAudioDev = 0x0403,
    MultimediaOther = 0x0480,
    MemoryRam = 0x0500,
    MemoryFlash = 0x0501,
    MemoryOther = 0x0580,
    BridgeHost = 0x0600,
    BridgeIsa = 0x0601,
    BridgeEisa = 0x0602,
    BridgeMc = 0x0603,
    BridgePci = 0x0604,
    BridgePcmcia = 0x0605,
    BridgeNubus = 0x0606,
    BridgeCardbus = 0x0607,
    BridgeRaceway = 0x0608,
    BridgePciSemi = 0x0609,
    BridgeIbToPci = 0x060a,
    BridgeAdvSwitching = 0x060b,
    BridgeOther = 0x0680,
    CommunicationSerial = 0x0700,
    CommunicationParallel = 0x0701,
    CommunicationMserial = 0x0702,
    CommunicationModem = 0x0703,
    CommunicationGpib = 0x0704,
    CommunicationSmartcard = 0x0705,
    CommunicationOther = 0x0780,
    SystemPic = 0x0800,
    SystemDma = 0x0801,
    SystemTimer = 0x0802,
    SystemRtc = 0x0803,
    SystemPciHotplug = 0x0804,
    SystemSdHost = 0x0805,
    SystemIommu = 0x0806,
    SystemRootEventColl = 0x0807,
    SystemTimeCard = 0x0808,
    SystemOther = 0x0880,
    SystemTimingCard = 0x0899,
    InputKeyboard = 0x0900,
    InputPen = 0x0901,
    InputMouse = 0x0902,
    InputScanner = 0x0903,
    InputGameport = 0x0904,
    InputOther = 0x0980,
    DockingGeneric = 0x0a00,
    DockingOther = 0x0a80,
    Processor386 = 0x0b00,
    Processor486 = 0x0b01,
    ProcessorPentium = 0x0b02,
    ProcessorAlpha = 0x0b10,
    ProcessorPowerpc = 0x0b20,
    ProcessorMips = 0x0b30,
    ProcessorCo = 0x0b40,
    ProcessorOther = 0x0b80,
    SerialFirewire = 0x0c00,
    SerialAccess = 0x0c01,
    SerialSsa = 0x0c02,
    SerialUsb = 0x0c03,
    SerialFiber = 0x0c04,
    SerialSmbus = 0x0c05,
    SerialInfiniband = 0x0c06,
    SerialIpmi = 0x0c07,
    SerialSercos = 0x0c08,
    SerialCanbus = 0x0c09,
    SerialMipsI3C = 0x0c0a,
    SerialCxlFmhi = 0x0c0b,
    SerialMmbi = 0x0c0c,
    SerialOther = 0x0c80,
    WirelessIrda = 0x0d00,
    WirelessConsumerIr = 0x0d01,
    WirelessRf = 0x0d10,
    WirelessBluetooth = 0x0d11,
    WirelessBroadband = 0x0d12,
    Wireless80211a = 0x0d20,
    Wireless80211b = 0x0d21,
    WirelessCellular = 0x0d40,
    WirelessCellularPlus80211 = 0x0d41,
    WirelessOther = 0x0d80,
    IntelligentI2O = 0x0e00,
    SatelliteTv = 0x0f00,
    SatelliteAudio = 0x0f01,
    SatelliteVoice = 0x0f03,
    SatelliteData = 0x0f04,
    SatelliteOther = 0x0f80,
    EncryptionNetwork = 0x1000,
    EncryptionEntertainment = 0x1010,
    EncryptionTpm = 0x1020,
    EncryptionOther = 0x1080,
    SignalDpio = 0x1100,
    SignalPerfCtr = 0x1101,
    SignalSynchronizer = 0x1110,
    SignalManagement = 0x1120,
    SignalOther = 0x1180,
    AcceleratorProcessing = 0x1200,
    AcceleratorSdxi = 0x1201,
    InstrumNonEssential = 0x1300,
}
