VirtualBox

Changeset 81333 in vbox for trunk/include/VBox/vmm/iom.h


Ignore:
Timestamp:
Oct 17, 2019 11:49:39 PM (5 years ago)
Author:
vboxsync
Message:

IOM: More MMIO stuff, almost there now... bugref:9218

File:
1 edited

Legend:

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

    r81197 r81333  
    155155#define IOMMMIO_FLAGS_DBGSTOP_ON_COMPLICATED_WRITE      UINT32_C(0x00000200)
    156156
     157/** Pass the absolute physical address (GC) to the callback rather than the
     158 * relative one.
     159 * @note New-style only, is implicit in old-style interface.  */
     160#define IOMMMIO_FLAGS_ABS                               UINT32_C(0x00001000)
     161
    157162/** Mask of valid flags. */
    158 #define IOMMMIO_FLAGS_VALID_MASK                        UINT32_C(0x00000373)
     163#define IOMMMIO_FLAGS_VALID_MASK                        UINT32_C(0x00001373)
    159164/** @} */
    160165
     
    399404 * @param   pvUser      User argument.
    400405 * @param   off         Offset into the mapping of the read,
    401  *                      or the physical address if IOM_MMIO_F_ABS is active.
     406 *                      or the physical address if IOMMMIO_FLAGS_ABS is active.
    402407 * @param   pv          Where to store the result.
    403408 * @param   cb          Number of bytes read.
     
    416421 * @param   pvUser      User argument.
    417422 * @param   off         Offset into the mapping of the write,
    418  *                      or the physical address if IOM_MMIO_F_ABS is active.
     423 *                      or the physical address if IOMMMIO_FLAGS_ABS is active.
    419424 * @param   pv          Where to fetch the result.
    420425 * @param   cb          Number of bytes to write.
     
    433438 * @param   pvUser      User argument.
    434439 * @param   off         Offset into the mapping of the fill,
    435  *                      or the physical address if IOM_MMIO_F_ABS is active.
     440 *                      or the physical address if IOMMMIO_FLAGS_ABS is active.
    436441 * @param   u32Item     Byte/Word/Dword data to fill.
    437442 * @param   cbItem      Size of data in u32Item parameter, restricted to 1/2/4 bytes.
     
    456461VMMDECL(int)            IOMMMIOMapMMIOHCPage(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhys, RTHCPHYS HCPhys, uint64_t fPageFlags);
    457462VMMDECL(int)            IOMMMIOResetRegion(PVMCC pVM, RTGCPHYS GCPhys);
    458 VMMDECL(bool)           IOMIsLockWriteOwner(PVM pVM);
     463
     464VMM_INT_DECL(VBOXSTRICTRC)  IOMMmioPhysHandler(PVMCC pVM, PVMCPUCC pVCpu, uint32_t uErrorCode, RTGCPHYS GCPhysFault);
     465VMM_INT_DECL(int)           IOMMmioMapMmio2Page(PVMCC pVM, PPDMDEVINS pDevIns, IOMMMIOHANDLE hRegion, RTGCPHYS offRegion,
     466                                                uint64_t hMmio2, RTGCPHYS offMmio2, uint64_t fPageFlags);
     467VMM_INT_DECL(int)           IOMMmioMapMmioHCPage(PVMCC pVM, PVMCPUCC pVCpu, RTGCPHYS GCPhys, RTHCPHYS HCPhys, uint64_t fPageFlags);
     468VMM_INT_DECL(int)           IOMMmioResetRegion(PVMCC pVM, PPDMDEVINS pDevIns, IOMMMIOHANDLE hRegion);
     469
    459470
    460471/** @name IOM_IOPORT_F_XXX - Flags for IOMR3IoPortCreate() and PDMDevHlpIoPortCreateEx().
     
    464475/** Valid flags for IOMR3IoPortCreate(). */
    465476#define IOM_IOPORT_F_VALID_MASK     UINT32_C(0x00000001)
    466 /** @} */
    467 
    468 /** @name IOM_MMIO_F_XXX - Flags for IOMR3MmioCreate() and PDMDevHlpMmioCreateEx().
    469  * @{ */
    470 /** Pass the absolute physical address (GC) to the callback rather than the
    471  * relative one. */
    472 #define IOM_MMIO_F_ABS              RT_BIT_32(0)
    473 /** Valid flags for IOMR3IoPortCreate(). */
    474 #define IOM_MMIO_F_VALID_MASK       UINT32_C(0x00000001)
    475477/** @} */
    476478
     
    574576VMMR0_INT_DECL(int)  IOMR0IoPortGrowRegistrationTables(PGVM pGVM, uint64_t cMinEntries);
    575577VMMR0_INT_DECL(int)  IOMR0IoPortGrowStatisticsTable(PGVM pGVM, uint64_t cMinEntries);
     578VMMR0_INT_DECL(int)  IOMR0IoPortSyncStatisticsIndices(PGVM pGVM);
    576579
    577580VMMR0_INT_DECL(int)  IOMR0MmioSetUpContext(PGVM pGVM, PPDMDEVINS pDevIns, IOMMMIOHANDLE hRegion, PFNIOMMMIONEWWRITE pfnWrite,
     
    579582VMMR0_INT_DECL(int)  IOMR0MmioGrowRegistrationTables(PGVM pGVM, uint64_t cMinEntries);
    580583VMMR0_INT_DECL(int)  IOMR0MmioGrowStatisticsTable(PGVM pGVM, uint64_t cMinEntries);
     584VMMR0_INT_DECL(int)  IOMR0MmioSyncStatisticsIndices(PGVM pGVM);
     585
    581586/** @} */
    582587#endif /* IN_RING0 || DOXYGEN_RUNNING */
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