@@ -10176,8 +10176,6 @@ struct VM {
1017610176 }
1017710177 #endif
1017810178
10179- bool found = false ;
10180-
1018110179 for (const auto & dev : devices) {
1018210180 const u32 id = ((dev.vendor_id << 16 ) | dev.device_id );
1018310181
@@ -10233,41 +10231,77 @@ struct VM {
1023310231 case 0x0e0f8002 : // Root Hub
1023410232 case 0x0e0f8003 : // Root Hub
1023510233 case 0x0e0ff80a : // Smoker FX2
10236-
10234+
10235+ // Red Hat + QEMU
10236+ case 0x1b360001 : // Red Hat, Inc. QEMU PCI-PCI bridge
10237+ case 0x1b360002 : // Red Hat, Inc. QEMU PCI 16550A Adapter
10238+ case 0x1b360003 : // Red Hat, Inc. QEMU PCI Dual-port 16550A Adapter
10239+ case 0x1b360004 : // Red Hat, Inc. QEMU PCI Quad-port 16550A Adapter
10240+ case 0x1b360005 : // Red Hat, Inc. QEMU PCI Test Device
10241+ case 0x1b360008 : // Red Hat, Inc. QEMU PCIe Host bridge
10242+ case 0x1b360009 : // Red Hat, Inc. QEMU PCI Expander bridge
10243+ case 0x1b36000b : // Red Hat, Inc. QEMU PCIe Expander bridge
10244+ case 0x1b36000c : // Red Hat, Inc. QEMU PCIe Root port
10245+ case 0x1b36000d : // Red Hat, Inc. QEMU XHCI Host Controller
10246+ case 0x1b360010 : // Red Hat, Inc. QEMU NVM Express Controller
10247+ case 0x1b360011 : // Red Hat, Inc. QEMU PVPanic device
10248+ case 0x1b360013 : // Red Hat, Inc. QEMU UFS Host Controller
10249+
10250+ // QEMU
10251+ case 0x6270001 : // Adomax Technology Co., Ltd QEMU Tablet
10252+ case 0x1d1d1f1f : // CNEX Labs QEMU NVM Express LightNVM Controller
10253+ case 0x80865845 : // Intel Corporation QEMU NVM Express Controller
10254+ case 0x1d6b0200 : // Linux Foundation Qemu Audio Device
10255+
10256+ // vGPUs (mostly NVIDIA)
10257+ case 0x10de0fe7 : // GK107GL [GRID K100 vGPU]
10258+ case 0x10de0ff7 : // GK107GL [GRID K140Q vGPU]
10259+ case 0x10de118d : // GK104GL [GRID K200 vGPU]
10260+ case 0x10de11b0 : // GK104GL [GRID K240Q\K260Q vGPU]
10261+ case 0x1ec6020f : // Vastai Technologies SG100 vGPU
10262+
1023710263 // VirtualBox
1023810264 case 0x80ee0021 : // USB Tablet
1023910265 case 0x80ee0022 : // multitouch tablet
10240-
10241- // Connectix (VirtualPC)
10242- case 0x29556e61 : // OHCI USB 1.1 controller
10243- found = true ;
10244- break ;
10245- }
10246-
10247- if (found) {
10248- debug (
10249- " PCI_VM_DEVICE_ID: found vendor ID = " ,
10250- " 0x" , std::setw (4 ), std::setfill (' 0' ), std::hex, dev.vendor_id ,
10251- " device ID = 0x" , std::setw (4 ), std::setfill (' 0' ), std::hex, dev.device_id
10252- );
10253-
10254- break ;
10266+
10267+ // misc
10268+ case 0x29556e61 : // Connectix (VirtualPC) OHCI USB 1.1 controller
10269+ case 0x1ab84000 : // Parallels, Inc. Virtual Machine Communication Interface
10270+ debug (
10271+ " PCI_VM_DEVICE_ID: found vendor ID = " ,
10272+ " 0x" , std::setw (4 ), std::setfill (' 0' ), std::hex, dev.vendor_id ,
10273+ " device ID = 0x" , std::setw (4 ), std::setfill (' 0' ), std::hex, dev.device_id
10274+ );
10275+
10276+ return true ;
1025510277 }
10278+
10279+ // TODO: EXTRAS TO ADD (64 instead of 32 bits for device_id field)
10280+ //
10281+ // Advanced Micro Devices, Inc. [AMD] 1022 QEMU Virtual Machine 1af41100
10282+ // Apple Inc. 106b QEMU Virtual Machine 1af41100
10283+ // Cirrus Logic 1013 QEMU Virtual Machine 1af41100
10284+ // Intel Corporation 8086 QEMU Virtual Machine 1af41100
10285+ // NEC Corporation 1033 QEMU Virtual Machine 1af41100
10286+ // Realtek Semiconductor Co., Ltd. 10ec QEMU Virtual Machine 1af41100
10287+ // VIA Technologies, Inc. 1106 QEMU Virtual Machine 1af41100
10288+ // Red Hat, Inc. 1af4 QEMU Virtual Machine 1af41100
10289+ // Red Hat, Inc. 1b36 QEMU Virtual Machine 1af41100
1025610290 }
10257-
10258- return found ;
10291+
10292+ return false ;
1025910293#endif
1026010294 }
10261-
10295+
1026210296 // ADD NEW TECHNIQUE FUNCTION HERE
10263-
10264-
10265-
10266-
10267-
10268-
10269-
10270-
10297+
10298+
10299+
10300+
10301+
10302+
10303+
10304+
1027110305
1027210306
1027310307
0 commit comments