Logo Search packages:      
Sourcecode: virtualbox-ose version File versions

mm.h File Reference


Detailed Description

MM - The Memory Manager.

Definition in file mm.h.

#include <VBox/cdefs.h>
#include <VBox/types.h>
#include <VBox/x86.h>
#include <VBox/sup.h>

Go to the source code of this file.

Defines

#define MMHYPER_GC_ASSERT_GCPTR(pVM, GCPtr)   do { } while (0)
RAM Page Flags
Since internal ranges have a byte granularity it's possible for a page be flagged for several uses. The access virtualization in PGM will choose the most restricted one and use EM to emulate access to the less restricted areas of the page.

Bits 0-11 only since they are fitted into the offset part of a physical memory address.

#define MM_RAM_FLAGS_CREFS_MASK   0x3
#define MM_RAM_FLAGS_CREFS_PHYSEXT   MM_RAM_FLAGS_CREFS_MASK
#define MM_RAM_FLAGS_CREFS_SHIFT   62
#define MM_RAM_FLAGS_DYNAMIC_ALLOC   BIT(11)
#define MM_RAM_FLAGS_IDX_MASK   0x3fff
#define MM_RAM_FLAGS_IDX_OVERFLOWED   MM_RAM_FLAGS_IDX_MASK
#define MM_RAM_FLAGS_IDX_SHIFT   48
#define MM_RAM_FLAGS_MMIO   BIT(2)
#define MM_RAM_FLAGS_MMIO2   BIT(3)
#define MM_RAM_FLAGS_NO_REFS_MASK   UINT64_C(0x0000ffffffffffff)
#define MM_RAM_FLAGS_PHYSICAL_ALL   BIT(9)
#define MM_RAM_FLAGS_PHYSICAL_HANDLER   BIT(7)
#define MM_RAM_FLAGS_PHYSICAL_TEMP_OFF   BIT(10)
#define MM_RAM_FLAGS_PHYSICAL_WRITE   BIT(8)
#define MM_RAM_FLAGS_RESERVED   BIT(0)
#define MM_RAM_FLAGS_ROM   BIT(1)
#define MM_RAM_FLAGS_VIRTUAL_ALL   BIT(6)
#define MM_RAM_FLAGS_VIRTUAL_HANDLER   BIT(4)
#define MM_RAM_FLAGS_VIRTUAL_WRITE   BIT(5)

Enumerations

enum  MMTAG {
  MM_TAG_INVALID = 0, MM_TAG_CFGM, MM_TAG_CFGM_BYTES, MM_TAG_CFGM_STRING,
  MM_TAG_CFGM_USER, MM_TAG_CSAM, MM_TAG_CSAM_PATCH, MM_TAG_DBGF,
  MM_TAG_DBGF_INFO, MM_TAG_DBGF_LINE, MM_TAG_DBGF_LINE_DUP, MM_TAG_DBGF_STACK,
  MM_TAG_DBGF_SYMBOL, MM_TAG_DBGF_SYMBOL_DUP, MM_TAG_DBGF_MODULE, MM_TAG_EM,
  MM_TAG_IOM, MM_TAG_IOM_STATS, MM_TAG_MM, MM_TAG_MM_LOOKUP_GUEST,
  MM_TAG_MM_LOOKUP_PHYS, MM_TAG_MM_LOOKUP_VIRT, MM_TAG_MM_PAGE, MM_TAG_PATM,
  MM_TAG_PATM_PATCH, MM_TAG_PDM, MM_TAG_PDM_DEVICE, MM_TAG_PDM_DEVICE_USER,
  MM_TAG_PDM_DRIVER, MM_TAG_PDM_DRIVER_USER, MM_TAG_PDM_LUN, MM_TAG_PDM_QUEUE,
  MM_TAG_PDM_THREAD, MM_TAG_PGM, MM_TAG_PGM_HANDLERS, MM_TAG_PGM_POOL,
  MM_TAG_REM, MM_TAG_SELM, MM_TAG_SSM, MM_TAG_STAM,
  MM_TAG_TM, MM_TAG_TRPM, MM_TAG_VM, MM_TAG_VM_REQ,
  MM_TAG_VMM, MM_TAG_HWACCM, MM_TAG_32BIT_HACK = 0x7fffffff
}
MMR3PhysRegisterEx registration type
enum  MMPHYSREG { MM_PHYS_TYPE_NORMAL = 0, MM_PHYS_TYPE_DYNALLOC_CHUNK, MM_PHYS_TYPE_32BIT_HACK = 0x7fffffff }

Functions

 DECLINLINE (RTHCPTR) MMHyper2HC(PVM pVM
 MMDECL (RTHCPHYS) MMPage2Phys(PVM pVM
 MMDECL (bool) MMHyperIsInsideArea(PVM pVM
 MMDECL (size_t) MMHyperHeapGetFreeSize(PVM pVM)
 MMDECL (int) MMHyperAlloc(PVM pVM
 MMDECL (RTR0PTR) MMHyperR3ToR0(PVM pVM
 MMDECL (void *) MMHyperR0ToCC(PVM pVM
 MMDECL (RTGCPTR) MMHyperR0ToGC(PVM pVM
 MMDECL (RTR3PTR) MMHyperR0ToR3(PVM pVM

Variables

size_t cb
RTGCPHYS RTUINT cbRange
size_t uint32_t MMTAG enmTag
RTGCPHYS GCPhys
RTGCPTR GCPtr
RTHCPHYS HCPhysPage
RTHCPTR HCPtr
size_t * pcb
size_t uint32_t MMTAG void ** ppv
RTHCPHYS void ** ppvPage
void * pv
RTGCPTR pvGC
void * pvPage
RTR0PTR R0Ptr
RTR3PTR R3Ptr
size_t uint32_t uAlignment


Generated by  Doxygen 1.6.0   Back to index