VirtualBox

Changeset 77299 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Feb 13, 2019 1:57:14 PM (6 years ago)
Author:
vboxsync
Message:

DevVGA,PCI,PGM: Hacks for making it possible to load saved states of the VBoxSVGA device with the 'wrong' BAR layout. bugref:9359

Location:
trunk/include/VBox/vmm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/pdmdev.h

    r77253 r77299  
    18901890
    18911891/** Current PDMDEVHLPR3 version number. */
    1892 #define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 22, 1)
     1892#define PDM_DEVHLPR3_VERSION                    PDM_VERSION_MAKE_PP(0xffe7, 22, 2)
    18931893
    18941894/**
     
    33803380    DECLR3CALLBACKMEMBER(void, pfnPhysBulkReleasePageMappingLocks,(PPDMDEVINS pDevIns, uint32_t cPages, PPGMPAGEMAPLOCK paLocks));
    33813381
     3382    /**
     3383     * Changes the number of an MMIO2 or pre-registered MMIO region.
     3384     *
     3385     * This should only be used to deal with saved state problems, so there is no
     3386     * convenience inline wrapper for this method.
     3387     *
     3388     * @returns VBox status code.
     3389     * @param   pDevIns             The device instance.
     3390     * @param   pPciDev             The PCI device the region is associated with, or
     3391     *                              NULL if not associated with any.
     3392     * @param   iRegion             The region.
     3393     * @param   iNewRegion          The new region index.
     3394     *
     3395     * @sa      @bugref{9359}
     3396     */
     3397    DECLR3CALLBACKMEMBER(int, pfnMMIOExChangeRegionNo,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion,
     3398                                                       uint32_t iNewRegion));
     3399
    33823400    /** Space reserved for future members.
    33833401     * @{ */
     
    33883406    DECLR3CALLBACKMEMBER(void, pfnReserved5,(void));
    33893407    DECLR3CALLBACKMEMBER(void, pfnReserved6,(void));
    3390     DECLR3CALLBACKMEMBER(void, pfnReserved7,(void));
     3408    /*DECLR3CALLBACKMEMBER(void, pfnReserved7,(void)); */
    33913409    /*DECLR3CALLBACKMEMBER(void, pfnReserved8,(void)); */
    33923410    /*DECLR3CALLBACKMEMBER(void, pfnReserved9,(void)); */
  • trunk/include/VBox/vmm/pdmpcidev.h

    r76585 r77299  
    122122typedef FNPCIIOREGIONOLDSETTER *PFNPCIIOREGIONOLDSETTER;
    123123
     124/**
     125 * Swaps two PCI I/O regions from within a PDMPCIDEV::pfnRegionLoadChangeHookR3
     126 * callback.
     127 *
     128 * @returns VBox status code.
     129 * @param   pPciDev         Pointer to the PCI device.
     130 * @param   iRegion         The region number.
     131 * @param   iOtherRegion    The number of the region swap with.
     132 * @sa      @bugref{9359}
     133 */
     134typedef DECLCALLBACK(int) FNPCIIOREGIONSWAP(PPDMPCIDEV pPciDev, uint32_t iRegion, uint32_t iOtherRegion);
     135/** Pointer to a FNPCIIOREGIONSWAP() function. */
     136typedef FNPCIIOREGIONSWAP *PFNPCIIOREGIONSWAP;
    124137
    125138
     
    188201     * @param   pfnOldSetter    Callback for setting size and type for call
    189202     *                          regarding old saved states.  NULL otherwise.
     203     * @param   pfnSwapRegions  Used to swaps two regions. The second one must be a
     204     *                          higher number than @a iRegion.  NULL if old saved
     205     *                          state.
    190206     */
    191207    DECLR3CALLBACKMEMBER(int, pfnRegionLoadChangeHookR3,(PPDMDEVINS pDevIns, PPDMPCIDEV pPciDev, uint32_t iRegion,
    192208                                                         uint64_t cbRegion, PCIADDRESSSPACE enmType,
    193                                                          PFNPCIIOREGIONOLDSETTER pfnOldSetter));
     209                                                         PFNPCIIOREGIONOLDSETTER pfnOldSetter,
     210                                                         PFNPCIIOREGIONSWAP pfnSwapRegion));
    194211} PDMPCIDEV;
    195212#ifdef PDMPCIDEVINT_DECLARED
  • trunk/include/VBox/vmm/pgm.h

    r77241 r77299  
    842842VMMR3_INT_DECL(int) PGMR3PhysMMIO2GetHCPhys(PVM pVM, PPDMDEVINS pDevIns, uint32_t iSubDev, uint32_t iRegion, RTGCPHYS off, PRTHCPHYS pHCPhys);
    843843VMMR3_INT_DECL(int) PGMR3PhysMMIO2MapKernel(PVM pVM, PPDMDEVINS pDevIns, uint32_t iSubDev, uint32_t iRegion, RTGCPHYS off, RTGCPHYS cb, const char *pszDesc, PRTR0PTR pR0Ptr);
     844VMMR3_INT_DECL(int) PGMR3PhysMMIOExChangeRegionNo(PVM pVM, PPDMDEVINS pDevIns, uint32_t iSubDev, uint32_t iRegion, uint32_t iNewRegion);
     845
    844846
    845847/** @name PGMR3PhysRegisterRom flags.
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