VirtualBox

Changeset 80704 in vbox


Ignore:
Timestamp:
Sep 10, 2019 3:19:39 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
133244
Message:

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

Location:
trunk
Files:
46 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/msi.h

    r76585 r80704  
    101101
    102102/**
    103  * MSI-X different from MSI by the fact that dedicated physical page
    104  * (in device memory) is assigned for MSI-X table, and Pending Bit Array (PBA),
    105  * which is recommended to be separated from the main table by at least 2K.
     103 * MSI-X differs from MSI by the fact that a dedicated physical page (in device
     104 * memory) is assigned for MSI-X table, and Pending Bit Array (PBA), which is
     105 * recommended to be separated from the main table by at least 2K.
     106 *
     107 * @{
    106108 */
    107 /* Size of a MSI-X page */
     109/** Size of a MSI-X page */
    108110#define VBOX_MSIX_PAGE_SIZE                   0x1000
    109 /* Pending interrupts (PBA) */
     111/** Pending interrupts (PBA) */
    110112#define VBOX_MSIX_PAGE_PENDING                (VBOX_MSIX_PAGE_SIZE / 2)
    111 /* Maximum number of vectors, per device/function */
     113/** Maximum number of vectors, per device/function */
    112114#define VBOX_MSIX_MAX_ENTRIES                 2048
    113 /* Size of MSI-X PCI capability */
     115/** Size of MSI-X PCI capability */
    114116#define VBOX_MSIX_CAP_SIZE                    12
    115 /* Offsets in MSI-X PCI capability structure (VBOX_PCI_CAP_ID_MSIX) */
     117/** Offsets in MSI-X PCI capability structure (VBOX_PCI_CAP_ID_MSIX) */
    116118#define VBOX_MSIX_CAP_MESSAGE_CONTROL         0x02
    117119#define VBOX_MSIX_TABLE_BIROFFSET             0x04
    118120#define VBOX_MSIX_PBA_BIROFFSET               0x08
    119 /* Size of single MSI-X table entry */
     121/** Size of single MSI-X table entry */
    120122#define VBOX_MSIX_ENTRY_SIZE                  16
     123/** @} */
    121124
    122125
  • trunk/include/VBox/vmm/pdmdev.h

    r80701 r80704  
    332332    uint32_t            cbInstanceRC;
    333333    /** Max number of PCI devices. */
    334     uint32_t            cMaxPciDevices;
     334    uint16_t            cMaxPciDevices;
     335    /** Max number of MSI-X vectors in any of the PCI devices. */
     336    uint16_t            cMaxMsixVectors;
    335337    /** The description of the device. The UTF-8 string pointed to shall, like this structure,
    336338     * remain unchanged from registration till VM destruction. */
     
    556558    uint32_t            cbInstanceRC;
    557559    /** Max number of PCI devices. */
    558     uint32_t            cMaxPciDevices;
     560    uint16_t            cMaxPciDevices;
     561    /** Max number of MSI-X vectors in any of the PCI devices. */
     562    uint16_t            cMaxMsixVectors;
    559563    /** The description of the device. The UTF-8 string pointed to shall, like this structure,
    560564     * remain unchanged from registration till VM destruction. */
     
    664668    uint32_t            cbInstanceRC;
    665669    /** Max number of PCI devices. */
    666     uint32_t            cMaxPciDevices;
     670    uint16_t            cMaxPciDevices;
     671    /** Max number of MSI-X vectors in any of the PCI devices. */
     672    uint16_t            cMaxMsixVectors;
    667673    /** The description of the device. The UTF-8 string pointed to shall, like this structure,
    668674     * remain unchanged from registration till VM destruction. */
  • trunk/src/VBox/Devices/Audio/DevHDA.cpp

    r80701 r80704  
    53265326    /* .cbInstanceRC = */           0,
    53275327    /* .cMaxPciDevices = */         1,
     5328    /* .cMaxMsixVectors = */        0,
    53285329    /* .pszDescription = */         "Intel HD Audio Controller",
    53295330#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Audio/DevIchAc97.cpp

    r80701 r80704  
    45564556    /* .cbInstanceRC = */           0,
    45574557    /* .cMaxPciDevices = */         1,
     4558    /* .cMaxMsixVectors = */        0,
    45584559    /* .pszDescription = */         "ICH AC'97 Audio Controller",
    45594560#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Audio/DevSB16.cpp

    r80703 r80704  
    26082608    /* .cbInstanceRC = */           0,
    26092609    /* .cMaxPciDevices = */         0,
     2610    /* .cMaxMsixVectors = */        0,
    26102611    /* .pszDescription = */         "Sound Blaster 16 Controller",
    26112612#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Bus/DevPCI.cpp

    r80701 r80704  
    14121412    /* .cbInstanceRC = */           0,
    14131413    /* .cMaxPciDevices = */         2,
     1414    /* .cMaxMsixVectors = */        0,
    14141415    /* .pszDescription = */         "i440FX PCI bridge and PIIX3 ISA bridge.",
    14151416#if defined(IN_RING3)
     
    17551756    /* .cbInstanceRC = */           0,
    17561757    /* .cMaxPciDevices = */         1,
     1758    /* .cMaxMsixVectors = */        0,
    17571759    /* .pszDescription = */         "82801 Mobile PCI to PCI bridge",
    17581760#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Bus/DevPciIch9.cpp

    r80702 r80704  
    36063606    /* .cbInstanceRC = */           0,
    36073607    /* .cMaxPciDevices = */         1,
     3608    /* .cMaxMsixVectors = */        0,
    36083609    /* .pszDescription = */         "ICH9 PCI bridge",
    36093610#if defined(IN_RING3)
     
    36793680    /* .cbInstanceRC = */           0,
    36803681    /* .cMaxPciDevices = */         1,
     3682    /* .cMaxMsixVectors = */        0,
    36813683    /* .pszDescription = */         "ICH9 PCI to PCI bridge",
    36823684#if defined(IN_RING3)
  • trunk/src/VBox/Devices/EFI/DevEFI.cpp

    r80703 r80704  
    24702470    /* .cbInstanceRC = */           0,
    24712471    /* .cMaxPciDevices = */         0,
     2472    /* .cMaxMsixVectors = */        0,
    24722473    /* .pszDescription = */         "Extensible Firmware Interface Device.\n"
    24732474                                    "LUN#0 - NVRAM port",
  • trunk/src/VBox/Devices/EFI/DevFlash.cpp

    r80703 r80704  
    533533    /* .cbInstanceRC = */           0,
    534534    /* .cMaxPciDevices = */         0,
     535    /* .cMaxMsixVectors = */        0,
    535536    /* .pszDescription = */         "Flash Memory Device",
    536537#if defined(IN_RING3)
  • trunk/src/VBox/Devices/EFI/DevSmc.cpp

    r80703 r80704  
    15081508    /* .cbInstanceRC = */           0,
    15091509    /* .cMaxPciDevices = */         0,
     1510    /* .cMaxMsixVectors = */        0,
    15101511    /* .pszDescription = */         "Apple System Management Controller",
    15111512#if defined(IN_RING3)
  • trunk/src/VBox/Devices/GIMDev/GIMDev.cpp

    r80703 r80704  
    423423    /* .cbInstanceRC = */           0,
    424424    /* .cMaxPciDevices = */         0,
     425    /* .cMaxMsixVectors = */        0,
    425426    /* .pszDescription = */         "VirtualBox GIM Device",
    426427#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Graphics/DevVGA.cpp

    r80701 r80704  
    72817281    /* .cbInstanceRC = */           0,
    72827282    /* .cMaxPciDevices = */         1,
     7283    /* .cMaxMsixVectors = */        0,
    72837284    /* .pszDescription = */         "VGA Adaptor with VESA extensions.",
    72847285#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Input/DevPS2.cpp

    r80703 r80704  
    10591059    /* .cbInstanceRC = */           0,
    10601060    /* .cMaxPciDevices = */         0,
     1061    /* .cMaxMsixVectors = */        0,
    10611062    /* .pszDescription = */         "PS/2 Keyboard and Mouse device. Emulates both the keyboard, mouse and the keyboard controller.\n"
    10621063                                    "LUN #0 is the keyboard connector.\n"
  • trunk/src/VBox/Devices/Misc/VirtualKD.cpp

    r80703 r80704  
    238238    /* .cbInstanceRC = */           0,
    239239    /* .cMaxPciDevices = */         0,
     240    /* .cMaxMsixVectors = */        0,
    240241    /* .pszDescription = */         "Provides fast debugging interface when debugging Windows kernel",
    241242#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Network/DevE1000.cpp

    r80701 r80704  
    81038103    /* .uReserved0 = */             0,
    81048104    /* .szName = */                 "e1000",
    8105     /* .fFlags = */                 PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | PDM_DEVREG_FLAGS_MSI_X,
     8105    /* .fFlags = */                 PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0,
    81068106    /* .fClass = */                 PDM_DEVREG_CLASS_NETWORK,
    81078107    /* .cMaxInstances = */          ~0U,
     
    81118111    /* .cbInstanceRC = */           0,
    81128112    /* .cMaxPciDevices = */         1,
     8113    /* .cMaxMsixVectors = */        0,
    81138114    /* .pszDescription = */         "Intel PRO/1000 MT Desktop Ethernet.",
    81148115#if defined(IN_RING3)
     
    81248125    /* .pfnResume = */              NULL,
    81258126    /* .pfnAttach = */              e1kR3Attach,
    8126     /* pfnDeatch */    e1kR3Detach,
     8127    /* .pfnDeatch = */              e1kR3Detach,
    81278128    /* .pfnQueryInterface = */      NULL,
    81288129    /* .pfnInitComplete = */        NULL,
  • trunk/src/VBox/Devices/Network/DevINIP.cpp

    r80703 r80704  
    740740    /* .cbInstanceRC = */           0,
    741741    /* .cMaxPciDevices = */         0,
     742    /* .cMaxMsixVectors = */        0,
    742743    /* .pszDescription = */         "Internal Network IP stack device",
    743744#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Network/DevPCNet.cpp

    r80701 r80704  
    55545554    /* .cbInstanceRC = */           0,
    55555555    /* .cMaxPciDevices = */         1,
     5556    /* .cMaxMsixVectors = */        0,
    55565557    /* .pszDescription = */         "AMD PCnet Ethernet controller.\n",
    55575558#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Network/DevVirtioNet.cpp

    r80701 r80704  
    23652365    /* .cbInstanceRC = */           0,
    23662366    /* .cMaxPciDevices = */         1,
     2367    /* .cMaxMsixVectors = */        0,
    23672368    /* .pszDescription = */         "Virtio Ethernet.\n",
    23682369#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevACPI.cpp

    r80701 r80704  
    41964196    /* .cbInstanceRC = */           0,
    41974197    /* .cMaxPciDevices = */         1,
     4198    /* .cMaxMsixVectors = */        0,
    41984199    /* .pszDescription = */         "Advanced Configuration and Power Interface",
    41994200#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevDMA.cpp

    r80703 r80704  
    11381138    /* .cbInstanceRC = */           0,
    11391139    /* .cMaxPciDevices = */         0,
     1140    /* .cMaxMsixVectors = */        0,
    11401141    /* .pszDescription = */         "DMA Controller Device",
    11411142#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevHPET.cpp

    r80703 r80704  
    14901490    /* .cbInstanceRC = */           0,
    14911491    /* .cMaxPciDevices = */         0,
     1492    /* .cMaxMsixVectors = */        0,
    14921493    /* .pszDescription = */         "High Precision Event Timer (HPET) Device",
    14931494#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevIoApic.cpp

    r80703 r80704  
    13851385    /* .cbInstanceRC = */           0,
    13861386    /* .cMaxPciDevices = */         0,
     1387    /* .cMaxMsixVectors = */        0,
    13871388    /* .pszDescription = */         "I/O Advanced Programmable Interrupt Controller (IO-APIC) Device",
    13881389#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevLpc-new.cpp

    r80701 r80704  
    400400    /* .cbInstanceRC = */           0,
    401401    /* .cMaxPciDevices = */         1,
     402    /* .cMaxMsixVectors = */        0,
    402403    /* .pszDescription = */         "Low Pin Count (LPC) Bus",
    403404#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevPIC.cpp

    r80703 r80704  
    10551055    /* .cbInstanceRC = */           0,
    10561056    /* .cMaxPciDevices = */         0,
     1057    /* .cMaxMsixVectors = */        0,
    10571058    /* .pszDescription = */         "Intel 8259 Programmable Interrupt Controller (PIC) Device.",
    10581059#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevPcArch.cpp

    r80703 r80704  
    299299    /* .cbInstanceRC = */           0,
    300300    /* .cMaxPciDevices = */         0,
     301    /* .cMaxMsixVectors = */        0,
    301302    /* .pszDescription = */         "PC Architecture Device",
    302303#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevPcBios.cpp

    r80703 r80704  
    18111811    /* .cbInstanceRC = */           0,
    18121812    /* .cMaxPciDevices = */         0,
     1813    /* .cMaxMsixVectors = */        0,
    18131814    /* .pszDescription = */         "PC BIOS Device",
    18141815#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevPit-i8254.cpp

    r80703 r80704  
    15401540    /* .cbInstanceRC = */           0,
    15411541    /* .cMaxPciDevices = */         0,
     1542    /* .cMaxMsixVectors = */        0,
    15421543    /* .pszDescription = */         "Intel 8254 Programmable Interval Timer (PIT) And Dummy Speaker Device",
    15431544#if defined(IN_RING3)
  • trunk/src/VBox/Devices/PC/DevRTC.cpp

    r80703 r80704  
    12771277    /* .cbInstanceRC = */           sizeof(RTCSTATERC),
    12781278    /* .cMaxPciDevices = */         0,
     1279    /* .cMaxMsixVectors = */        0,
    12791280    /* .pszDescription = */         "Motorola MC146818 RTC/CMOS Device.",
    12801281#ifdef IN_RING3
  • trunk/src/VBox/Devices/Parallel/DevParallel.cpp

    r80703 r80704  
    825825    /* .cbInstanceRC = */           0,
    826826    /* .cMaxPciDevices = */         0,
     827    /* .cMaxMsixVectors = */        0,
    827828    /* .pszDescription = */         "Parallel Communication Port",
    828829#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Samples/DevPlayground.cpp

    r80701 r80704  
    352352    /* .cbInstanceRC = */           0,
    353353    /* .cMaxPciDevices = */         1,
     354    /* .cMaxMsixVectors = */        0,
    354355    /* .pszDescription = */         "VBox Playground Device.",
    355356#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Samples/VBoxSampleDevice.cpp

    r80703 r80704  
    100100    /* .cbInstanceRC = */           0,
    101101    /* .cMaxPciDevices = */         0,
     102    /* .cMaxMsixVectors = */        0,
    102103    /* .pszDescription = */         "VBox Sample Device.",
    103104#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Serial/DevOxPcie958.cpp

    r80701 r80704  
    632632    /* .uReserved0 = */             0,
    633633    /* .szName = */                 "oxpcie958uart",
    634     /* .fFlags = */                 PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0 | PDM_DEVREG_FLAGS_MSI_X,
     634    /* .fFlags = */                 PDM_DEVREG_FLAGS_DEFAULT_BITS | PDM_DEVREG_FLAGS_RC | PDM_DEVREG_FLAGS_R0,
    635635    /* .fClass = */                 PDM_DEVREG_CLASS_SERIAL,
    636636    /* .cMaxInstances = */          ~0U,
     
    640640    /* .cbInstanceRC = */           0,
    641641    /* .cMaxPciDevices = */         1,
     642    /* .cMaxMsixVectors = */        VBOX_MSIX_MAX_ENTRIES,
    642643    /* .pszDescription = */         "OXPCIe958 based UART controller.\n",
    643644#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Serial/DevSerial.cpp

    r80703 r80704  
    479479    /* .cbInstanceRC = */           0,
    480480    /* .cMaxPciDevices = */         0,
     481    /* .cMaxMsixVectors = */        0,
    481482    /* .pszDescription = */         "Serial Communication Port",
    482483#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Storage/DevAHCI.cpp

    r80701 r80704  
    62446244    /* .cbInstanceRC = */           0,
    62456245    /* .cMaxPciDevices = */         1,
     6246    /* .cMaxMsixVectors = */        0,
    62466247    /* .pszDescription = */         "Intel AHCI controller.\n",
    62476248#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Storage/DevATA.cpp

    r80701 r80704  
    80708070    /* .cbInstanceRC = */           0,
    80718071    /* .cMaxPciDevices = */         1,
     8072    /* .cMaxMsixVectors = */        0,
    80728073    /* .pszDescription = */         "Intel PIIX3 ATA controller.\n"
    80738074                                    "  LUN #0 is primary master.\n"
  • trunk/src/VBox/Devices/Storage/DevBusLogic.cpp

    r80701 r80704  
    45054505    /* .cbInstanceRC = */           0,
    45064506    /* .cMaxPciDevices = */         1,
     4507    /* .cMaxMsixVectors = */        0,
    45074508    /* .pszDescription = */         "BusLogic BT-958 SCSI host adapter.\n",
    45084509#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Storage/DevFdc.cpp

    r80703 r80704  
    28492849    /* .cbInstanceRC = */           0,
    28502850    /* .cMaxPciDevices = */         0,
     2851    /* .cMaxMsixVectors = */        0,
    28512852    /* .pszDescription = */         "Floppy drive controller (Intel 82078)",
    28522853#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp

    r80702 r80704  
    55275527    MsiReg.iMsixNextOffset = 0x00;
    55285528    MsiReg.iMsixBar        = 3;
     5529    Assert(pDevIns->pReg->cMaxMsixVectors >= MsiReg.cMsixVectors); /* fix device registration when enabling this */
    55295530#  else
    55305531    MsiReg.cMsiVectors     = 1;
     
    57525753    /* .cbInstanceRC = */           0,
    57535754    /* .cMaxPciDevices = */         1,
     5755    /* .cMaxMsixVectors = */        0,
    57545756    /* .pszDescription = */         "LSI Logic 53c1030 SCSI controller.\n",
    57555757#if defined(IN_RING3)
     
    58265828    /* .cbInstanceRC = */           0,
    58275829    /* .cMaxPciDevices = */         1,
     5830    /* .cMaxMsixVectors = */        0,
    58285831    /* .pszDescription = */         "LSI Logic SAS1068 controller.\n",
    58295832#if defined(IN_RING3)
  • trunk/src/VBox/Devices/Storage/DevVirtioSCSI.cpp

    r80701 r80704  
    23822382    /* .cbInstanceRC = */           0,
    23832383    /* .cMaxPciDevices = */         1,
     2384    /* .cMaxMsixVectors = */        0,
    23842385    /* .pszDescription = */         "Virtio Host SCSI.\n",
    23852386#if defined(IN_RING3)
  • trunk/src/VBox/Devices/USB/DevOHCI.cpp

    r80701 r80704  
    61606160    /* .cbInstanceRC = */           0,
    61616161    /* .cMaxPciDevices = */         1,
     6162    /* .cMaxMsixVectors = */        0,
    61626163    /* .pszDescription = */         "OHCI USB controller.\n",
    61636164#if defined(IN_RING3)
  • trunk/src/VBox/Devices/VMMDev/VMMDev.cpp

    r80701 r80704  
    47534753    /* .cbInstanceRC = */           0,
    47544754    /* .cMaxPciDevices = */         1,
     4755    /* .cMaxMsixVectors = */        0,
    47554756    /* .pszDescription = */         "VirtualBox VMM Device\n",
    47564757#if defined(IN_RING3)
  • trunk/src/VBox/ExtPacks/BusMouseSample/BusMouse.cpp

    r80703 r80704  
    845845    /* .cbInstanceRC = */           0,
    846846    /* .cMaxPciDevices = */         0,
     847    /* .cMaxMsixVectors = */        0,
    847848    /* .pszDescription = */         "Microsoft Bus Mouse controller. LUN #0 is the mouse connector.",
    848849# if defined(IN_RING3)
  • trunk/src/VBox/VMM/VMMAll/APICAll.cpp

    r80703 r80704  
    35253525    /* .cbInstanceRC = */           0,
    35263526    /* .cMaxPciDevices = */         0,
     3527    /* .cMaxMsixVectors = */        0,
    35273528    /* .pszDescription = */         "Advanced Programmable Interrupt Controller",
    35283529#if defined(IN_RING3)
  • trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp

    r80701 r80704  
    3131#include <VBox/vmm/hm.h>
    3232#include <VBox/vmm/vmcc.h>
     33#include <VBox/vmm/gvmm.h>
    3334
    3435#include <VBox/log.h>
    3536#include <VBox/err.h>
    36 #include <VBox/vmm/gvmm.h>
     37#include <VBox/msi.h>
    3738#include <VBox/sup.h>
    3839#include <iprt/asm.h>
     
    18131814        AssertLogRelMsgReturn(pDevReg->cMaxInstances   > 0, ("[%u]: %#x\n", i, pDevReg->cMaxInstances),  VERR_INVALID_PARAMETER);
    18141815        AssertLogRelMsgReturn(pDevReg->cMaxPciDevices <= 8, ("[%u]: %#x\n", i, pDevReg->cMaxPciDevices), VERR_INVALID_PARAMETER);
     1816        AssertLogRelMsgReturn(pDevReg->cMaxMsixVectors <= VBOX_MSIX_MAX_ENTRIES,
     1817                              ("[%u]: %#x\n", i, pDevReg->cMaxMsixVectors), VERR_INVALID_PARAMETER);
    18151818
    18161819        /* The name must be printable ascii and correctly terminated. */
  • trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp

    r80701 r80704  
    19281928                          ("'%s'/%d: cMaxPciDevices is 0\n", pDevIns->pReg->szName, pDevIns->iInstance),
    19291929                          VERR_WRONG_ORDER);
    1930     AssertLogRelMsgReturn((pDevIns->pReg->fFlags & PDM_DEVREG_FLAGS_MSI_X) || pMsiReg->cMsixVectors == 0,
    1931                           ("'%s'/%d: PDM_DEVREG_FLAGS_MSI_X not set and cMsixVectors=%u\n",
    1932                            pDevIns->pReg->szName, pDevIns->iInstance, pMsiReg->cMsixVectors),
     1930    AssertLogRelMsgReturn(pMsiReg->cMsixVectors <= pDevIns->pReg->cMaxMsixVectors,
     1931                          ("'%s'/%d: cMsixVectors=%u cMaxMsixVectors=%u\n",
     1932                           pDevIns->pReg->szName, pDevIns->iInstance, pMsiReg->cMsixVectors, pDevIns->pReg->cMaxMsixVectors),
    19331933                          VERR_INVALID_FLAGS);
    19341934
  • trunk/src/VBox/VMM/VMMR3/PDMDevice.cpp

    r80701 r80704  
    3939#include <VBox/version.h>
    4040#include <VBox/log.h>
     41#include <VBox/msi.h>
    4142#include <VBox/err.h>
    4243#include <iprt/alloc.h>
     
    762763    AssertLogRelMsgReturn(pReg->cMaxPciDevices <= 8, ("%#x (szName=%s)\n", pReg->cMaxPciDevices, pReg->szName),
    763764                          VERR_PDM_INVALID_DEVICE_REGISTRATION);
     765    AssertLogRelMsgReturn(pReg->cMaxMsixVectors <= VBOX_MSIX_MAX_ENTRIES,
     766                          ("%#x (szName=%s)\n", pReg->cMaxMsixVectors, pReg->szName),
     767                          VERR_PDM_INVALID_DEVICE_REGISTRATION);
    764768
    765769    /*
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette