VirtualBox

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


Ignore:
Timestamp:
Jun 13, 2024 10:31:38 AM (6 months ago)
Author:
vboxsync
Message:

VMM/PGM: bugref:10703 Add PGM API for retreiving boot zeroed RAM ranges for Hyper-V paravirt provider.

File:
1 edited

Legend:

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

    r104885 r104910  
    743743/** @} */
    744744
     745/**
     746 * A physical memory range.
     747 *
     748 * @note This layout adheres to to GIM Hyper-V specs (asserted while compiling
     749 * GIM Hyper-V that uses the PGM API).
     750 */
     751typedef struct PGMPHYSRANGE
     752{
     753    /** The first address in the range. */
     754    RTGCPHYS        GCPhysStart;
     755    /** The number of pages in the range. */
     756    uint64_t        cPages;
     757} PGMPHYSRANGE;
     758AssertCompileSize(PGMPHYSRANGE, 16);
     759
     760/**
     761 * A list of physical memory ranges.
     762 *
     763 * @note This layout adheres to to GIM Hyper-V specs (asserted while compiling
     764 * GIM Hyper-V that uses the PGM API).
     765 */
     766typedef struct PGMPHYSRANGES
     767{
     768    /** The number of ranges in the list. */
     769    uint64_t        cRanges;
     770    /** Array of physical memory ranges. */
     771    RT_FLEXIBLE_ARRAY_EXTENSION
     772    PGMPHYSRANGE    aRanges[RT_FLEXIBLE_ARRAY];
     773} PGMPHYSRANGES;
     774/** Pointer to a list of physical memory ranges. */
     775typedef PGMPHYSRANGES *PPGMPHYSRANGES;
     776/** Pointer to a const list of physical memory ranges. */
     777typedef PGMPHYSRANGES const *PCPGMPHYSRANGES;
     778
    745779
    746780VMM_INT_DECL(PGMPAGETYPE) PGMPhysGetPageType(PVMCC pVM, RTGCPHYS GCPhys);
     
    11121146VMMR3DECL(int)      PGMR3PhysGetRange(PVM pVM, uint32_t iRange, PRTGCPHYS pGCPhysStart, PRTGCPHYS pGCPhysLast,
    11131147                                      const char **ppszDesc, bool *pfIsMmio);
     1148VMMR3_INT_DECL(int) PGMR3PhysGetRamBootZeroedRanges(PVM pVM, PPGMPHYSRANGES pRanges, uint32_t cMaxRanges);
    11141149VMMR3DECL(int)      PGMR3QueryMemoryStats(PUVM pUVM, uint64_t *pcbTotalMem, uint64_t *pcbPrivateMem, uint64_t *pcbSharedMem, uint64_t *pcbZeroMem);
    11151150VMMR3DECL(int)      PGMR3QueryGlobalMemoryStats(PUVM pUVM, uint64_t *pcbAllocMem, uint64_t *pcbFreeMem, uint64_t *pcbBallonedMem, uint64_t *pcbSharedMem);
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