GMMR0Internal.h revision 3cc114d9c84cf4a1e3b5225e81527614c30f1d83
/* $Id$ */
/** @file
* GMM - The Global Memory Manager, Internal Header.
*/
/*
* Copyright (C) 2007 InnoTek Systemberatung GmbH
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License as published by the Free Software Foundation,
* in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
* distribution. VirtualBox OSE is distributed in the hope that it will
* be useful, but WITHOUT ANY WARRANTY of any kind.
*
*/
#ifndef ___GMMR0Internal_h
#define ___GMMR0Internal_h
/**
* The allocation sizes.
*/
typedef struct GMMVMSIZES
{
/** The number of pages of base memory.
* This is the sum of RAM, ROMs and handy pages. */
/** The number of pages for the shadow pool. (Can be sequeezed for memory.) */
/** The number of pages for fixed allocations like MMIO2 and the hyper heap. */
} GMMVMSIZES;
typedef GMMVMSIZES *PGMMVMSIZES;
/**
* The per-VM GMM data.
*/
typedef struct GMMPERVM
{
/** The reservations. */
/** The actual allocations.
* This includes both private and shared page allocations. */
/** The current number of private pages. */
/** The current number of shared pages. */
/** The current over-comitment policy. */
/** The VM priority for arbitrating VMs in low and out of memory situation.
* Like which VMs to start sequeezing first. */
/** The current number of ballooned pages. */
/** The max number of pages that can be ballooned. */
/** The number of pages we've currently requested the guest to give us. */
/** Whether ballooning is enabled or not. */
bool fBallooningEnabled;
/** Whether the VM is allowed to allocate memory or not.
* This is used when the reservation update request fails or when the VM has
bool fMayAllocate;
} GMMPERVM;
/** Pointer to the per-VM GMM data. */
#endif