Skip to content

Commit 7247714

Browse files
committed
added Red Hat, QEMU, vGPUs, and Parallels PCI IDs to VM::PCI_VM_DEVICE_ID
1 parent ac63500 commit 7247714

1 file changed

Lines changed: 63 additions & 29 deletions

File tree

src/vmaware.hpp

Lines changed: 63 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)