VirtualBox

Changeset 82073 in vbox for trunk


Ignore:
Timestamp:
Nov 21, 2019 10:57:54 AM (5 years ago)
Author:
vboxsync
Message:

DevPCI: Added a special return code to FNPCIIOREGIONMAP for telling the bus that the callback did the mapping and it should not use the registered handle to do so again. Needed for VGA (alternative was to reorder the callout order). bugref:9218

Location:
trunk
Files:
3 edited

Legend:

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

    r81727 r82073  
    23672367
    23682368
    2369 /** @name PCI Passtrhough Status Codes
     2369/** @name PCI Bus & Passthrough Status Codes
    23702370 * @{
    23712371 */
     
    23792379 * PCI passthrough currently works only if nested paging is active. */
    23802380#define VERR_PCI_PASSTHROUGH_NO_NESTED_PAGING       (-5102)
     2381
     2382/** Special return code from a PCI I/O region mapping handler that tells the BUS
     2383 * that it has done the mapping already. */
     2384#define VINF_PCI_MAPPING_DONE                       5150
    23812385/** @} */
    23822386
  • trunk/include/VBox/vmm/pdmpcidev.h

    r81375 r82073  
    100100 *
    101101 * @returns VBox status code.
     102 * @retval  VINF_PCI_MAPPING_DONE if the caller already did the mapping and the
     103 *          PCI bus should not use the handle it got to do the registration
     104 *          again.  (Only allowed when @a GCPhysAddress is not NIL_RTGCPHYS.)
     105 *
    102106 * @param   pDevIns         Pointer to the device instance the PCI device
    103107 *                          belongs to.
  • trunk/src/VBox/Devices/Bus/DevPciIch9.cpp

    r81765 r82073  
    27382738                {
    27392739                    /* The callout is optional with new style devices: */
    2740                     if (pRegion->pfnMap)
     2740                    if (!pRegion->pfnMap)
     2741                        rc = VINF_SUCCESS;
     2742                    else
    27412743                    {
    27422744                        rc = pRegion->pfnMap(pPciDev->Int.s.pDevInsR3, pPciDev, iRegion,
     
    27462748
    27472749                    /* We do the mapping for new-style devices: */
    2748                     if (pRegion->hHandle != UINT64_MAX)
     2750                    if (pRegion->hHandle != UINT64_MAX && rc != VINF_PCI_MAPPING_DONE)
    27492751                    {
    27502752                        switch (pRegion->fFlags & PDMPCIDEV_IORGN_F_HANDLE_MASK)
Note: See TracChangeset for help on using the changeset viewer.

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