diff options
author | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2019-09-10 15:19:39 +0000 |
---|---|---|
committer | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2019-09-10 15:19:39 +0000 |
commit | 89c6c61950d900773bf3f103ecc75f7849837022 (patch) | |
tree | 08b1ae6309a8e3bca76a69acb71d79c19061e861 /src | |
parent | 6a57d190f37cc949ed470f3e8992e966f77f2a09 (diff) | |
download | VirtualBox-svn-89c6c61950d900773bf3f103ecc75f7849837022.tar.gz |
PDM,Devices: Changed PDM_DEVREG_FLAGS_MSI_X into a registration field giving the max MSI-X vector count config for the device (typically VBOX_MSIX_MAX_ENTRIES). bugref:9218
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@80704 cfe28804-0f27-0410-a406-dd0f0b0b656f
Diffstat (limited to 'src')
44 files changed, 59 insertions, 7 deletions
diff --git a/src/VBox/Devices/Audio/DevHDA.cpp b/src/VBox/Devices/Audio/DevHDA.cpp index e05113609a8..3e63e8b665d 100644 --- a/src/VBox/Devices/Audio/DevHDA.cpp +++ b/src/VBox/Devices/Audio/DevHDA.cpp @@ -5325,6 +5325,7 @@ const PDMDEVREG g_DeviceHDA = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Intel HD Audio Controller", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Audio/DevIchAc97.cpp b/src/VBox/Devices/Audio/DevIchAc97.cpp index 7c646cb9567..6d17ed764c0 100644 --- a/src/VBox/Devices/Audio/DevIchAc97.cpp +++ b/src/VBox/Devices/Audio/DevIchAc97.cpp @@ -4555,6 +4555,7 @@ const PDMDEVREG g_DeviceICHAC97 = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "ICH AC'97 Audio Controller", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Audio/DevSB16.cpp b/src/VBox/Devices/Audio/DevSB16.cpp index 111c39b47b1..6fec144a784 100644 --- a/src/VBox/Devices/Audio/DevSB16.cpp +++ b/src/VBox/Devices/Audio/DevSB16.cpp @@ -2607,6 +2607,7 @@ const PDMDEVREG g_DeviceSB16 = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Sound Blaster 16 Controller", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/Bus/DevPCI.cpp b/src/VBox/Devices/Bus/DevPCI.cpp index a39f902ecfe..75379e34a3e 100644 --- a/src/VBox/Devices/Bus/DevPCI.cpp +++ b/src/VBox/Devices/Bus/DevPCI.cpp @@ -1411,6 +1411,7 @@ const PDMDEVREG g_DevicePCI = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 2, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "i440FX PCI bridge and PIIX3 ISA bridge.", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", @@ -1754,6 +1755,7 @@ const PDMDEVREG g_DevicePCIBridge = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "82801 Mobile PCI to PCI bridge", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Bus/DevPciIch9.cpp b/src/VBox/Devices/Bus/DevPciIch9.cpp index 7b1af10ed67..121fd69a7e9 100644 --- a/src/VBox/Devices/Bus/DevPciIch9.cpp +++ b/src/VBox/Devices/Bus/DevPciIch9.cpp @@ -3605,6 +3605,7 @@ const PDMDEVREG g_DevicePciIch9 = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "ICH9 PCI bridge", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", @@ -3678,6 +3679,7 @@ const PDMDEVREG g_DevicePciIch9Bridge = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "ICH9 PCI to PCI bridge", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/EFI/DevEFI.cpp b/src/VBox/Devices/EFI/DevEFI.cpp index da820d5d329..880c91b2fa4 100644 --- a/src/VBox/Devices/EFI/DevEFI.cpp +++ b/src/VBox/Devices/EFI/DevEFI.cpp @@ -2469,6 +2469,7 @@ const PDMDEVREG g_DeviceEFI = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Extensible Firmware Interface Device.\n" "LUN#0 - NVRAM port", #if defined(IN_RING3) diff --git a/src/VBox/Devices/EFI/DevFlash.cpp b/src/VBox/Devices/EFI/DevFlash.cpp index 1f977b18a79..ba2a708f6a2 100644 --- a/src/VBox/Devices/EFI/DevFlash.cpp +++ b/src/VBox/Devices/EFI/DevFlash.cpp @@ -532,6 +532,7 @@ const PDMDEVREG g_DeviceFlash = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Flash Memory Device", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/EFI/DevSmc.cpp b/src/VBox/Devices/EFI/DevSmc.cpp index e57bc7a08d3..5b35266c62a 100644 --- a/src/VBox/Devices/EFI/DevSmc.cpp +++ b/src/VBox/Devices/EFI/DevSmc.cpp @@ -1507,6 +1507,7 @@ const PDMDEVREG g_DeviceSmc = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Apple System Management Controller", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/GIMDev/GIMDev.cpp b/src/VBox/Devices/GIMDev/GIMDev.cpp index b3d7cb8e56c..7192cf61d06 100644 --- a/src/VBox/Devices/GIMDev/GIMDev.cpp +++ b/src/VBox/Devices/GIMDev/GIMDev.cpp @@ -422,6 +422,7 @@ const PDMDEVREG g_DeviceGIMDev = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "VirtualBox GIM Device", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Graphics/DevVGA.cpp b/src/VBox/Devices/Graphics/DevVGA.cpp index 805d58cebd3..dba87d8211e 100644 --- a/src/VBox/Devices/Graphics/DevVGA.cpp +++ b/src/VBox/Devices/Graphics/DevVGA.cpp @@ -7280,6 +7280,7 @@ const PDMDEVREG g_DeviceVga = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "VGA Adaptor with VESA extensions.", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Input/DevPS2.cpp b/src/VBox/Devices/Input/DevPS2.cpp index 15c10d9021a..6f25bdf665e 100644 --- a/src/VBox/Devices/Input/DevPS2.cpp +++ b/src/VBox/Devices/Input/DevPS2.cpp @@ -1058,6 +1058,7 @@ const PDMDEVREG g_DevicePS2KeyboardMouse = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "PS/2 Keyboard and Mouse device. Emulates both the keyboard, mouse and the keyboard controller.\n" "LUN #0 is the keyboard connector.\n" "LUN #1 is the aux/mouse connector.", diff --git a/src/VBox/Devices/Misc/VirtualKD.cpp b/src/VBox/Devices/Misc/VirtualKD.cpp index 93c7fbb12ba..ac542cdf39a 100644 --- a/src/VBox/Devices/Misc/VirtualKD.cpp +++ b/src/VBox/Devices/Misc/VirtualKD.cpp @@ -237,6 +237,7 @@ const PDMDEVREG g_DeviceVirtualKD = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Provides fast debugging interface when debugging Windows kernel", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/Network/DevE1000.cpp b/src/VBox/Devices/Network/DevE1000.cpp index 04fb7c38a5c..4d819ddca77 100644 --- a/src/VBox/Devices/Network/DevE1000.cpp +++ b/src/VBox/Devices/Network/DevE1000.cpp @@ -8102,7 +8102,7 @@ const PDMDEVREG g_DeviceE1000 = /* .u32version = */ PDM_DEVREG_VERSION, /* .uReserved0 = */ 0, /* .szName = */ "e1000", - /* .fFlags = */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | PDM_DEVREG_FLAGS_MSI_X, + /* .fFlags = */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0, /* .fClass = */ PDM_DEVREG_CLASS_NETWORK, /* .cMaxInstances = */ ~0U, /* .uSharedVersion = */ 42, @@ -8110,6 +8110,7 @@ const PDMDEVREG g_DeviceE1000 = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Intel PRO/1000 MT Desktop Ethernet.", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", @@ -8123,7 +8124,7 @@ const PDMDEVREG g_DeviceE1000 = /* .pfnSuspend = */ e1kR3Suspend, /* .pfnResume = */ NULL, /* .pfnAttach = */ e1kR3Attach, - /* pfnDeatch */ e1kR3Detach, + /* .pfnDeatch = */ e1kR3Detach, /* .pfnQueryInterface = */ NULL, /* .pfnInitComplete = */ NULL, /* .pfnPowerOff = */ e1kR3PowerOff, diff --git a/src/VBox/Devices/Network/DevINIP.cpp b/src/VBox/Devices/Network/DevINIP.cpp index e8b5b399acc..98dd5cec1bc 100644 --- a/src/VBox/Devices/Network/DevINIP.cpp +++ b/src/VBox/Devices/Network/DevINIP.cpp @@ -739,6 +739,7 @@ const PDMDEVREG g_DeviceINIP = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Internal Network IP stack device", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/Network/DevPCNet.cpp b/src/VBox/Devices/Network/DevPCNet.cpp index ff07b2bcb69..25b580624f5 100644 --- a/src/VBox/Devices/Network/DevPCNet.cpp +++ b/src/VBox/Devices/Network/DevPCNet.cpp @@ -5553,6 +5553,7 @@ const PDMDEVREG g_DevicePCNet = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "AMD PCnet Ethernet controller.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Network/DevVirtioNet.cpp b/src/VBox/Devices/Network/DevVirtioNet.cpp index 19fcdee7df9..4ac73de8e80 100644 --- a/src/VBox/Devices/Network/DevVirtioNet.cpp +++ b/src/VBox/Devices/Network/DevVirtioNet.cpp @@ -2364,6 +2364,7 @@ const PDMDEVREG g_DeviceVirtioNet = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Virtio Ethernet.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/PC/DevACPI.cpp b/src/VBox/Devices/PC/DevACPI.cpp index 7ffdef76802..6a28ec7fed3 100644 --- a/src/VBox/Devices/PC/DevACPI.cpp +++ b/src/VBox/Devices/PC/DevACPI.cpp @@ -4195,6 +4195,7 @@ const PDMDEVREG g_DeviceACPI = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Advanced Configuration and Power Interface", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/PC/DevDMA.cpp b/src/VBox/Devices/PC/DevDMA.cpp index 15a2e038dd7..f1d139dae69 100644 --- a/src/VBox/Devices/PC/DevDMA.cpp +++ b/src/VBox/Devices/PC/DevDMA.cpp @@ -1137,6 +1137,7 @@ const PDMDEVREG g_DeviceDMA = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "DMA Controller Device", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/PC/DevHPET.cpp b/src/VBox/Devices/PC/DevHPET.cpp index a3a5e331772..a29354f69c3 100644 --- a/src/VBox/Devices/PC/DevHPET.cpp +++ b/src/VBox/Devices/PC/DevHPET.cpp @@ -1489,6 +1489,7 @@ const PDMDEVREG g_DeviceHPET = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "High Precision Event Timer (HPET) Device", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/PC/DevIoApic.cpp b/src/VBox/Devices/PC/DevIoApic.cpp index f2be8194bdb..07402d7edc7 100644 --- a/src/VBox/Devices/PC/DevIoApic.cpp +++ b/src/VBox/Devices/PC/DevIoApic.cpp @@ -1384,6 +1384,7 @@ const PDMDEVREG g_DeviceIOAPIC = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "I/O Advanced Programmable Interrupt Controller (IO-APIC) Device", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/PC/DevLpc-new.cpp b/src/VBox/Devices/PC/DevLpc-new.cpp index c9dcda0519a..abdeacd9f11 100644 --- a/src/VBox/Devices/PC/DevLpc-new.cpp +++ b/src/VBox/Devices/PC/DevLpc-new.cpp @@ -399,6 +399,7 @@ const PDMDEVREG g_DeviceLPC = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Low Pin Count (LPC) Bus", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/PC/DevPIC.cpp b/src/VBox/Devices/PC/DevPIC.cpp index e76fc78096a..b4a260f9321 100644 --- a/src/VBox/Devices/PC/DevPIC.cpp +++ b/src/VBox/Devices/PC/DevPIC.cpp @@ -1054,6 +1054,7 @@ const PDMDEVREG g_DeviceI8259 = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Intel 8259 Programmable Interrupt Controller (PIC) Device.", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/PC/DevPcArch.cpp b/src/VBox/Devices/PC/DevPcArch.cpp index 82315b58758..2c880d5240e 100644 --- a/src/VBox/Devices/PC/DevPcArch.cpp +++ b/src/VBox/Devices/PC/DevPcArch.cpp @@ -298,6 +298,7 @@ const PDMDEVREG g_DevicePcArch = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "PC Architecture Device", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/PC/DevPcBios.cpp b/src/VBox/Devices/PC/DevPcBios.cpp index 1711e541fcd..9a8ea67f7fc 100644 --- a/src/VBox/Devices/PC/DevPcBios.cpp +++ b/src/VBox/Devices/PC/DevPcBios.cpp @@ -1810,6 +1810,7 @@ const PDMDEVREG g_DevicePcBios = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "PC BIOS Device", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/PC/DevPit-i8254.cpp b/src/VBox/Devices/PC/DevPit-i8254.cpp index 3a18ad1306b..fa84f94429b 100644 --- a/src/VBox/Devices/PC/DevPit-i8254.cpp +++ b/src/VBox/Devices/PC/DevPit-i8254.cpp @@ -1539,6 +1539,7 @@ const PDMDEVREG g_DeviceI8254 = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Intel 8254 Programmable Interval Timer (PIT) And Dummy Speaker Device", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/PC/DevRTC.cpp b/src/VBox/Devices/PC/DevRTC.cpp index 9016e6ecf5a..f6019295fee 100644 --- a/src/VBox/Devices/PC/DevRTC.cpp +++ b/src/VBox/Devices/PC/DevRTC.cpp @@ -1276,6 +1276,7 @@ const PDMDEVREG g_DeviceMC146818 = /* .cbInstanceCC = */ sizeof(RTCSTATECC), /* .cbInstanceRC = */ sizeof(RTCSTATERC), /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Motorola MC146818 RTC/CMOS Device.", #ifdef IN_RING3 /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Parallel/DevParallel.cpp b/src/VBox/Devices/Parallel/DevParallel.cpp index 85c9c878fb9..9283f1900d3 100644 --- a/src/VBox/Devices/Parallel/DevParallel.cpp +++ b/src/VBox/Devices/Parallel/DevParallel.cpp @@ -824,6 +824,7 @@ const PDMDEVREG g_DeviceParallelPort = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Parallel Communication Port", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Samples/DevPlayground.cpp b/src/VBox/Devices/Samples/DevPlayground.cpp index 16ae335e935..b0a85a211c5 100644 --- a/src/VBox/Devices/Samples/DevPlayground.cpp +++ b/src/VBox/Devices/Samples/DevPlayground.cpp @@ -351,6 +351,7 @@ static const PDMDEVREG g_DevicePlayground = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "VBox Playground Device.", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/Samples/VBoxSampleDevice.cpp b/src/VBox/Devices/Samples/VBoxSampleDevice.cpp index 30b949ce684..d91c01d72bd 100644 --- a/src/VBox/Devices/Samples/VBoxSampleDevice.cpp +++ b/src/VBox/Devices/Samples/VBoxSampleDevice.cpp @@ -99,6 +99,7 @@ static const PDMDEVREG g_DeviceSample = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "VBox Sample Device.", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/Serial/DevOxPcie958.cpp b/src/VBox/Devices/Serial/DevOxPcie958.cpp index 3030839d7c5..3a2a31bc3a8 100644 --- a/src/VBox/Devices/Serial/DevOxPcie958.cpp +++ b/src/VBox/Devices/Serial/DevOxPcie958.cpp @@ -631,7 +631,7 @@ const PDMDEVREG g_DeviceOxPcie958 = /* .u32version = */ PDM_DEVREG_VERSION, /* .uReserved0 = */ 0, /* .szName = */ "oxpcie958uart", - /* .fFlags = */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | PDM_DEVREG_FLAGS_MSI_X, + /* .fFlags = */ PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0, /* .fClass = */ PDM_DEVREG_CLASS_SERIAL, /* .cMaxInstances = */ ~0U, /* .uSharedVersion = */ 42, @@ -639,6 +639,7 @@ const PDMDEVREG g_DeviceOxPcie958 = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ VBOX_MSIX_MAX_ENTRIES, /* .pszDescription = */ "OXPCIe958 based UART controller.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Serial/DevSerial.cpp b/src/VBox/Devices/Serial/DevSerial.cpp index 93ead7fbc3a..d723ee26540 100644 --- a/src/VBox/Devices/Serial/DevSerial.cpp +++ b/src/VBox/Devices/Serial/DevSerial.cpp @@ -478,6 +478,7 @@ const PDMDEVREG g_DeviceSerialPort = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Serial Communication Port", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Storage/DevAHCI.cpp b/src/VBox/Devices/Storage/DevAHCI.cpp index 3d7206e500f..11a0e3c77ac 100644 --- a/src/VBox/Devices/Storage/DevAHCI.cpp +++ b/src/VBox/Devices/Storage/DevAHCI.cpp @@ -6243,6 +6243,7 @@ const PDMDEVREG g_DeviceAHCI = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Intel AHCI controller.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Storage/DevATA.cpp b/src/VBox/Devices/Storage/DevATA.cpp index d271762c116..3c2210e9af0 100644 --- a/src/VBox/Devices/Storage/DevATA.cpp +++ b/src/VBox/Devices/Storage/DevATA.cpp @@ -8069,6 +8069,7 @@ const PDMDEVREG g_DevicePIIX3IDE = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Intel PIIX3 ATA controller.\n" " LUN #0 is primary master.\n" " LUN #1 is primary slave.\n" diff --git a/src/VBox/Devices/Storage/DevBusLogic.cpp b/src/VBox/Devices/Storage/DevBusLogic.cpp index 10864a813ad..2e62e1f1146 100644 --- a/src/VBox/Devices/Storage/DevBusLogic.cpp +++ b/src/VBox/Devices/Storage/DevBusLogic.cpp @@ -4504,6 +4504,7 @@ const PDMDEVREG g_DeviceBusLogic = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "BusLogic BT-958 SCSI host adapter.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Storage/DevFdc.cpp b/src/VBox/Devices/Storage/DevFdc.cpp index 413ee2c5381..761c226c3c1 100644 --- a/src/VBox/Devices/Storage/DevFdc.cpp +++ b/src/VBox/Devices/Storage/DevFdc.cpp @@ -2848,6 +2848,7 @@ const PDMDEVREG g_DeviceFloppyController = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Floppy drive controller (Intel 82078)", #if defined(IN_RING3) /* .pszRCMod = */ "", diff --git a/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp b/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp index 1a993c17092..38b86c21729 100644 --- a/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp +++ b/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp @@ -5526,6 +5526,7 @@ static DECLCALLBACK(int) lsilogicR3Construct(PPDMDEVINS pDevIns, int iInstance, MsiReg.iMsixCapOffset = 0x80; MsiReg.iMsixNextOffset = 0x00; MsiReg.iMsixBar = 3; + Assert(pDevIns->pReg->cMaxMsixVectors >= MsiReg.cMsixVectors); /* fix device registration when enabling this */ # else MsiReg.cMsiVectors = 1; MsiReg.iMsiCapOffset = 0x80; @@ -5751,6 +5752,7 @@ const PDMDEVREG g_DeviceLsiLogicSCSI = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "LSI Logic 53c1030 SCSI controller.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", @@ -5825,6 +5827,7 @@ const PDMDEVREG g_DeviceLsiLogicSAS = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "LSI Logic SAS1068 controller.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/Storage/DevVirtioSCSI.cpp b/src/VBox/Devices/Storage/DevVirtioSCSI.cpp index dbf2466e3c5..706edc65c2b 100644 --- a/src/VBox/Devices/Storage/DevVirtioSCSI.cpp +++ b/src/VBox/Devices/Storage/DevVirtioSCSI.cpp @@ -2381,6 +2381,7 @@ const PDMDEVREG g_DeviceVirtioSCSI = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Virtio Host SCSI.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/USB/DevOHCI.cpp b/src/VBox/Devices/USB/DevOHCI.cpp index a82d8fd5587..c2089355471 100644 --- a/src/VBox/Devices/USB/DevOHCI.cpp +++ b/src/VBox/Devices/USB/DevOHCI.cpp @@ -6159,6 +6159,7 @@ const PDMDEVREG g_DeviceOHCI = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "OHCI USB controller.\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/Devices/VMMDev/VMMDev.cpp b/src/VBox/Devices/VMMDev/VMMDev.cpp index f9348362aef..5ef6535b9b3 100644 --- a/src/VBox/Devices/VMMDev/VMMDev.cpp +++ b/src/VBox/Devices/VMMDev/VMMDev.cpp @@ -4752,6 +4752,7 @@ extern "C" const PDMDEVREG g_DeviceVMMDev = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 1, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "VirtualBox VMM Device\n", #if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/ExtPacks/BusMouseSample/BusMouse.cpp b/src/VBox/ExtPacks/BusMouseSample/BusMouse.cpp index 9345f3f7a5e..bcab2b80fc4 100644 --- a/src/VBox/ExtPacks/BusMouseSample/BusMouse.cpp +++ b/src/VBox/ExtPacks/BusMouseSample/BusMouse.cpp @@ -844,6 +844,7 @@ const PDMDEVREG g_DeviceBusMouse = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Microsoft Bus Mouse controller. LUN #0 is the mouse connector.", # if defined(IN_RING3) /* .pszRCMod = */ "VBoxDDRC.rc", diff --git a/src/VBox/VMM/VMMAll/APICAll.cpp b/src/VBox/VMM/VMMAll/APICAll.cpp index 89ebf85dcb0..2f069a21ba3 100644 --- a/src/VBox/VMM/VMMAll/APICAll.cpp +++ b/src/VBox/VMM/VMMAll/APICAll.cpp @@ -3524,6 +3524,7 @@ const PDMDEVREG g_DeviceAPIC = /* .cbInstanceCC = */ 0, /* .cbInstanceRC = */ 0, /* .cMaxPciDevices = */ 0, + /* .cMaxMsixVectors = */ 0, /* .pszDescription = */ "Advanced Programmable Interrupt Controller", #if defined(IN_RING3) /* .szRCMod = */ "VMMRC.rc", diff --git a/src/VBox/VMM/VMMR0/PDMR0Device.cpp b/src/VBox/VMM/VMMR0/PDMR0Device.cpp index a1e3445e520..05796cbb7a7 100644 --- a/src/VBox/VMM/VMMR0/PDMR0Device.cpp +++ b/src/VBox/VMM/VMMR0/PDMR0Device.cpp @@ -30,10 +30,11 @@ #include <VBox/vmm/vmm.h> #include <VBox/vmm/hm.h> #include <VBox/vmm/vmcc.h> +#include <VBox/vmm/gvmm.h> #include <VBox/log.h> #include <VBox/err.h> -#include <VBox/vmm/gvmm.h> +#include <VBox/msi.h> #include <VBox/sup.h> #include <iprt/asm.h> #include <iprt/assert.h> @@ -1812,6 +1813,8 @@ VMMR0DECL(int) PDMR0DeviceRegisterModule(void *hMod, PPDMDEVMODREGR0 pModReg) AssertLogRelMsgReturn(pDevReg->fFlags != 0, ("[%u]: %#x\n", i, pDevReg->fFlags), VERR_INVALID_PARAMETER); AssertLogRelMsgReturn(pDevReg->cMaxInstances > 0, ("[%u]: %#x\n", i, pDevReg->cMaxInstances), VERR_INVALID_PARAMETER); AssertLogRelMsgReturn(pDevReg->cMaxPciDevices <= 8, ("[%u]: %#x\n", i, pDevReg->cMaxPciDevices), VERR_INVALID_PARAMETER); + AssertLogRelMsgReturn(pDevReg->cMaxMsixVectors <= VBOX_MSIX_MAX_ENTRIES, + ("[%u]: %#x\n", i, pDevReg->cMaxMsixVectors), VERR_INVALID_PARAMETER); /* The name must be printable ascii and correctly terminated. */ for (size_t off = 0; off < RT_ELEMENTS(pDevReg->szName); off++) diff --git a/src/VBox/VMM/VMMR3/PDMDevHlp.cpp b/src/VBox/VMM/VMMR3/PDMDevHlp.cpp index 4d30f55e612..20bec09eb4b 100644 --- a/src/VBox/VMM/VMMR3/PDMDevHlp.cpp +++ b/src/VBox/VMM/VMMR3/PDMDevHlp.cpp @@ -1927,9 +1927,9 @@ static DECLCALLBACK(int) pdmR3DevHlp_PCIRegisterMsi(PPDMDEVINS pDevIns, PPDMPCID AssertLogRelMsgReturn(pDevIns->pReg->cMaxPciDevices > 0, ("'%s'/%d: cMaxPciDevices is 0\n", pDevIns->pReg->szName, pDevIns->iInstance), VERR_WRONG_ORDER); - AssertLogRelMsgReturn((pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_MSI_X) || pMsiReg->cMsixVectors == 0, - ("'%s'/%d: PDM_DEVREG_FLAGS_MSI_X not set and cMsixVectors=%u\n", - pDevIns->pReg->szName, pDevIns->iInstance, pMsiReg->cMsixVectors), + AssertLogRelMsgReturn(pMsiReg->cMsixVectors <= pDevIns->pReg->cMaxMsixVectors, + ("'%s'/%d: cMsixVectors=%u cMaxMsixVectors=%u\n", + pDevIns->pReg->szName, pDevIns->iInstance, pMsiReg->cMsixVectors, pDevIns->pReg->cMaxMsixVectors), VERR_INVALID_FLAGS); PPDMPCIBUS pBus = pPciDev->Int.s.pPdmBusR3; Assert(pBus); diff --git a/src/VBox/VMM/VMMR3/PDMDevice.cpp b/src/VBox/VMM/VMMR3/PDMDevice.cpp index 17009665f85..7ba4c9a30f7 100644 --- a/src/VBox/VMM/VMMR3/PDMDevice.cpp +++ b/src/VBox/VMM/VMMR3/PDMDevice.cpp @@ -38,6 +38,7 @@ #include <VBox/version.h> #include <VBox/log.h> +#include <VBox/msi.h> #include <VBox/err.h> #include <iprt/alloc.h> #include <iprt/alloca.h> @@ -761,6 +762,9 @@ static DECLCALLBACK(int) pdmR3DevReg_Register(PPDMDEVREGCB pCallbacks, PCPDMDEVR pReg->u32VersionEnd, PDM_DEVREG_VERSION, pReg->szName)); AssertLogRelMsgReturn(pReg->cMaxPciDevices <= 8, ("%#x (szName=%s)\n", pReg->cMaxPciDevices, pReg->szName), VERR_PDM_INVALID_DEVICE_REGISTRATION); + AssertLogRelMsgReturn(pReg->cMaxMsixVectors <= VBOX_MSIX_MAX_ENTRIES, + ("%#x (szName=%s)\n", pReg->cMaxMsixVectors, pReg->szName), + VERR_PDM_INVALID_DEVICE_REGISTRATION); /* * Check for duplicate and find FIFO entry at the same time. |