@@ -8988,126 +8988,126 @@ struct VM {
89888988
89898989 switch (id) {
89908990 // Red Hat + Virtio
8991- case 0x1af41000 : // Virtio network device
8992- case 0x1af41001 : // Virtio block device
8993- case 0x1af41002 : // Virtio memory balloon
8994- case 0x1af41003 : // Virtio console
8995- case 0x1af41004 : // Virtio SCSI
8996- case 0x1af41005 : // Virtio RNG
8997- case 0x1af41009 : // Virtio filesystem
8998- case 0x1af41041 : // Virtio network device
8999- case 0x1af41042 : // Virtio block device
9000- case 0x1af41043 : // Virtio console
9001- case 0x1af41044 : // Virtio RNG
9002- case 0x1af41045 : // Virtio memory balloon
9003- case 0x1af41048 : // Virtio SCSI
9004- case 0x1af41049 : // Virtio filesystem
9005- case 0x1af41050 : // Virtio GPU
9006- case 0x1af41052 : // Virtio input
9007- case 0x1af41053 : // Virtio socket
9008- case 0x1af4105a : // Virtio file system
9009- case 0x1af41110 : // Inter-VM shared memory
9010- return true ;
8991+ case 0x1af41000 : // Virtio network device
8992+ case 0x1af41001 : // Virtio block device
8993+ case 0x1af41002 : // Virtio memory balloon
8994+ case 0x1af41003 : // Virtio console
8995+ case 0x1af41004 : // Virtio SCSI
8996+ case 0x1af41005 : // Virtio RNG
8997+ case 0x1af41009 : // Virtio filesystem
8998+ case 0x1af41041 : // Virtio network device
8999+ case 0x1af41042 : // Virtio block device
9000+ case 0x1af41043 : // Virtio console
9001+ case 0x1af41044 : // Virtio RNG
9002+ case 0x1af41045 : // Virtio memory balloon
9003+ case 0x1af41048 : // Virtio SCSI
9004+ case 0x1af41049 : // Virtio filesystem
9005+ case 0x1af41050 : // Virtio GPU
9006+ case 0x1af41052 : // Virtio input
9007+ case 0x1af41053 : // Virtio socket
9008+ case 0x1af4105a : // Virtio file system
9009+ case 0x1af41110 : // Inter-VM shared memory
9010+ return true ;
90119011
9012- // VMware
9013- case 0x15ad0405 : // SVGA II Adapter
9014- case 0x15ad0710 : // SVGA Adapter
9015- case 0x15ad0720 : // VMXNET Ethernet Controller
9016- case 0x15ad0740 : // Virtual Machine Communication Interface
9017- case 0x15ad0770 : // USB2 EHCI Controller
9018- case 0x15ad0774 : // USB1.1 UHCI Controller
9019- case 0x15ad0778 : // USB3 xHCI 0.96 Controller
9020- case 0x15ad0779 : // USB3 xHCI 1.0 Controller
9021- case 0x15ad0790 : // PCI bridge
9022- case 0x15ad07a0 : // PCI Express Root Port
9023- case 0x15ad07b0 : // VMXNET3 Ethernet Controller
9024- case 0x15ad07c0 : // PVSCSI SCSI Controller
9025- case 0x15ad07e0 : // SATA AHCI controller
9026- case 0x15ad07f0 : // NVMe SSD Controller
9027- case 0x15ad0801 : // Virtual Machine Interface
9028- case 0x15ad0820 : // Paravirtual RDMA controller
9029- case 0x15ad1977 : // HD Audio Controller
9030- case 0xfffe0710 : // Virtual SVGA
9031- case 0x0e0f0001 : // Device
9032- case 0x0e0f0002 : // Virtual USB Hub
9033- case 0x0e0f0003 : // Virtual Mouse
9034- case 0x0e0f0004 : // Virtual CCID
9035- case 0x0e0f0005 : // Virtual Mass Storage
9036- case 0x0e0f0006 : // Virtual Keyboard
9037- case 0x0e0f000a : // Virtual Sensors
9038- case 0x0e0f8001 : // Root Hub
9039- case 0x0e0f8002 : // Root Hub
9040- case 0x0e0f8003 : // Root Hub
9041- case 0x0e0ff80a : // Smoker FX2
9042- return found (brands::VMWARE, dev);
9043-
9044- // Red Hat + QEMU
9045- case 0x1b360001 : // Red Hat, Inc. QEMU PCI-PCI bridge
9046- case 0x1b360002 : // Red Hat, Inc. QEMU PCI 16550A Adapter
9047- case 0x1b360003 : // Red Hat, Inc. QEMU PCI Dual-port 16550A Adapter
9048- case 0x1b360004 : // Red Hat, Inc. QEMU PCI Quad-port 16550A Adapter
9049- case 0x1b360005 : // Red Hat, Inc. QEMU PCI Test Device
9050- case 0x1b360008 : // Red Hat, Inc. QEMU PCIe Host bridge
9051- case 0x1b360009 : // Red Hat, Inc. QEMU PCI Expander bridge
9052- case 0x1b36000b : // Red Hat, Inc. QEMU PCIe Expander bridge
9053- case 0x1b36000c : // Red Hat, Inc. QEMU PCIe Root port
9054- case 0x1b36000d : // Red Hat, Inc. QEMU XHCI Host Controller
9055- case 0x1b360010 : // Red Hat, Inc. QEMU NVM Express Controller
9056- case 0x1b360011 : // Red Hat, Inc. QEMU PVPanic device
9057- case 0x1b360013 : // Red Hat, Inc. QEMU UFS Host Controller
9058- case 0x1b360100 : // Red Hat, Inc. QXL paravirtual graphic card
9059- return found (brands::QEMU, dev);
9060-
9061- // QEMU
9062- case 0x06270001 : // Adomax Technology Co., Ltd QEMU Tablet
9063- case 0x1d1d1f1f : // CNEX Labs QEMU NVM Express LightNVM Controller
9064- case 0x80865845 : // Intel Corporation QEMU NVM Express Controller
9065- case 0x1d6b0200 : // Linux Foundation Qemu Audio Device
9066- return found (brands::QEMU, dev);
9067-
9068- // vGPUs (mostly NVIDIA)
9069- case 0x10de0fe7 : // GK107GL [GRID K100 vGPU]
9070- case 0x10de0ff7 : // GK107GL [GRID K140Q vGPU]
9071- case 0x10de118d : // GK104GL [GRID K200 vGPU]
9072- case 0x10de11b0 : // GK104GL [GRID K240Q\K260Q vGPU]
9073- case 0x1ec6020f : // Vastai Technologies SG100 vGPU
9074- return true ;
9012+ // VMware
9013+ case 0x15ad0405 : // SVGA II Adapter
9014+ case 0x15ad0710 : // SVGA Adapter
9015+ case 0x15ad0720 : // VMXNET Ethernet Controller
9016+ case 0x15ad0740 : // Virtual Machine Communication Interface
9017+ case 0x15ad0770 : // USB2 EHCI Controller
9018+ case 0x15ad0774 : // USB1.1 UHCI Controller
9019+ case 0x15ad0778 : // USB3 xHCI 0.96 Controller
9020+ case 0x15ad0779 : // USB3 xHCI 1.0 Controller
9021+ case 0x15ad0790 : // PCI bridge
9022+ case 0x15ad07a0 : // PCI Express Root Port
9023+ case 0x15ad07b0 : // VMXNET3 Ethernet Controller
9024+ case 0x15ad07c0 : // PVSCSI SCSI Controller
9025+ case 0x15ad07e0 : // SATA AHCI controller
9026+ case 0x15ad07f0 : // NVMe SSD Controller
9027+ case 0x15ad0801 : // Virtual Machine Interface
9028+ case 0x15ad0820 : // Paravirtual RDMA controller
9029+ case 0x15ad1977 : // HD Audio Controller
9030+ case 0xfffe0710 : // Virtual SVGA
9031+ case 0x0e0f0001 : // Device
9032+ case 0x0e0f0002 : // Virtual USB Hub
9033+ case 0x0e0f0003 : // Virtual Mouse
9034+ case 0x0e0f0004 : // Virtual CCID
9035+ case 0x0e0f0005 : // Virtual Mass Storage
9036+ case 0x0e0f0006 : // Virtual Keyboard
9037+ case 0x0e0f000a : // Virtual Sensors
9038+ case 0x0e0f8001 : // Root Hub
9039+ case 0x0e0f8002 : // Root Hub
9040+ case 0x0e0f8003 : // Root Hub
9041+ case 0x0e0ff80a : // Smoker FX2
9042+ return found (brands::VMWARE, dev);
9043+
9044+ // Red Hat + QEMU
9045+ case 0x1b360001 : // Red Hat, Inc. QEMU PCI-PCI bridge
9046+ case 0x1b360002 : // Red Hat, Inc. QEMU PCI 16550A Adapter
9047+ case 0x1b360003 : // Red Hat, Inc. QEMU PCI Dual-port 16550A Adapter
9048+ case 0x1b360004 : // Red Hat, Inc. QEMU PCI Quad-port 16550A Adapter
9049+ case 0x1b360005 : // Red Hat, Inc. QEMU PCI Test Device
9050+ case 0x1b360008 : // Red Hat, Inc. QEMU PCIe Host bridge
9051+ case 0x1b360009 : // Red Hat, Inc. QEMU PCI Expander bridge
9052+ case 0x1b36000b : // Red Hat, Inc. QEMU PCIe Expander bridge
9053+ case 0x1b36000c : // Red Hat, Inc. QEMU PCIe Root port
9054+ case 0x1b36000d : // Red Hat, Inc. QEMU XHCI Host Controller
9055+ case 0x1b360010 : // Red Hat, Inc. QEMU NVM Express Controller
9056+ case 0x1b360011 : // Red Hat, Inc. QEMU PVPanic device
9057+ case 0x1b360013 : // Red Hat, Inc. QEMU UFS Host Controller
9058+ case 0x1b360100 : // Red Hat, Inc. QXL paravirtual graphic card
9059+ return found (brands::QEMU, dev);
9060+
9061+ // QEMU
9062+ case 0x06270001 : // Adomax Technology Co., Ltd QEMU Tablet
9063+ case 0x1d1d1f1f : // CNEX Labs QEMU NVM Express LightNVM Controller
9064+ case 0x80865845 : // Intel Corporation QEMU NVM Express Controller
9065+ case 0x1d6b0200 : // Linux Foundation Qemu Audio Device
9066+ return found (brands::QEMU, dev);
9067+
9068+ // vGPUs (mostly NVIDIA)
9069+ case 0x10de0fe7 : // GK107GL [GRID K100 vGPU]
9070+ case 0x10de0ff7 : // GK107GL [GRID K140Q vGPU]
9071+ case 0x10de118d : // GK104GL [GRID K200 vGPU]
9072+ case 0x10de11b0 : // GK104GL [GRID K240Q\K260Q vGPU]
9073+ case 0x1ec6020f : // Vastai Technologies SG100 vGPU
9074+ return true ;
90759075
9076- // VirtualBox
9077- case 0x80ee0021 : // USB Tablet
9078- case 0x80ee0022 : // multitouch tablet
9079- case 0x80eebeef : // InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
9080- case 0x80eecafe : // InnoTek Systemberatung GmbH VirtualBox Guest Service
9081- return found (brands::VBOX, dev);
9082-
9083- // Hyper-V
9084- case 0x1f3f9002 : // 3SNIC Ltd SSSNIC Ethernet VF Hyper-V
9085- case 0x1f3f9004 : // 3SNIC Ltd SSSNIC Ethernet SDI VF Hyper-V
9086- case 0x1f3f9009 : // 3SNIC Ltd SSSFC VF Hyper-V
9087- case 0x808637d9 : // Intel Corporation X722 Hyper-V Virtual Function
9088- case 0x14145353 : // Microsoft Corporation Hyper-V virtual VGA
9089- if (util::hyper_x () == HYPERV_ARTIFACT_VM) {
9090- continue ;
9091- }
9092- return found (brands::HYPERV, dev);
9093-
9094- // Parallels
9095- case 0x1ab84000 : // Virtual Machine Communication Interface
9096- case 0x1ab84005 : // Accelerated Virtual Video Adapter
9097- case 0x1ab84006 : // Memory Ballooning Controller
9098- return found (brands::PARALLELS, dev);
9099-
9100- // Xen
9101- case 0x5853c000 : // XenSource, Inc. Citrix XenServer PCI Device for Windows Update
9102- case 0xfffd0101 : // XenSource, Inc. PCI Event Channel Controller
9103- case 0x5853c147 : // XenSource, Inc. Virtualized Graphics Device
9104- case 0x5853c110 : // XenSource, Inc. Virtualized HID
9105- case 0x5853c200 : // XenSource, Inc. XCP-ng Project PCI Device for Windows Update
9106- case 0x58530001 : // XenSource, Inc. Xen Platform Device
9107- return found (brands::XEN, dev);
9108-
9109- // Connectix (VirtualPC) OHCI USB 1.1 controller
9110- case 0x29556e61 : return found (brands::VPC, dev);
9076+ // VirtualBox
9077+ case 0x80ee0021 : // USB Tablet
9078+ case 0x80ee0022 : // multitouch tablet
9079+ case 0x80eebeef : // InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
9080+ case 0x80eecafe : // InnoTek Systemberatung GmbH VirtualBox Guest Service
9081+ return found (brands::VBOX, dev);
9082+
9083+ // Hyper-V
9084+ case 0x1f3f9002 : // 3SNIC Ltd SSSNIC Ethernet VF Hyper-V
9085+ case 0x1f3f9004 : // 3SNIC Ltd SSSNIC Ethernet SDI VF Hyper-V
9086+ case 0x1f3f9009 : // 3SNIC Ltd SSSFC VF Hyper-V
9087+ case 0x808637d9 : // Intel Corporation X722 Hyper-V Virtual Function
9088+ case 0x14145353 : // Microsoft Corporation Hyper-V virtual VGA
9089+ if (util::hyper_x () == HYPERV_ARTIFACT_VM) {
9090+ continue ;
9091+ }
9092+ return found (brands::HYPERV, dev);
9093+
9094+ // Parallels
9095+ case 0x1ab84000 : // Virtual Machine Communication Interface
9096+ case 0x1ab84005 : // Accelerated Virtual Video Adapter
9097+ case 0x1ab84006 : // Memory Ballooning Controller
9098+ return found (brands::PARALLELS, dev);
9099+
9100+ // Xen
9101+ case 0x5853c000 : // XenSource, Inc. Citrix XenServer PCI Device for Windows Update
9102+ case 0xfffd0101 : // XenSource, Inc. PCI Event Channel Controller
9103+ case 0x5853c147 : // XenSource, Inc. Virtualized Graphics Device
9104+ case 0x5853c110 : // XenSource, Inc. Virtualized HID
9105+ case 0x5853c200 : // XenSource, Inc. XCP-ng Project PCI Device for Windows Update
9106+ case 0x58530001 : // XenSource, Inc. Xen Platform Device
9107+ return found (brands::XEN, dev);
9108+
9109+ // Connectix (VirtualPC) OHCI USB 1.1 controller
9110+ case 0x29556e61 : return found (brands::VPC, dev);
91119111 }
91129112
91139113 // TODO: EXTRAS TO ADD (64 instead of 32 bits for device_id field)
0 commit comments