vmm.h revision d7fe26caad92e0d13017738ab94de18e37be91b4
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * VMM - The Virtual Machine Monitor.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2006-2010 Oracle Corporation
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * available from http://www.virtualbox.org. This file is free software;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * you can redistribute it and/or modify it under the terms of the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * General Public License (GPL) as published by the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * The contents of this file may alternatively be used under the terms
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * of the Common Development and Distribution License Version 1.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * VirtualBox OSE distribution, in which case the provisions of the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * CDDL are applicable instead of those of the GPL.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * You may elect to license modified versions of this file under the
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * terms and conditions of either the GPL or the CDDL or both.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/** @defgroup grp_vmm The Virtual Machine Monitor API
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * World switcher identifiers.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** The usual invalid 0. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for 32-bit host to 32-bit shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for 32-bit host paging to PAE shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for 32-bit host paging to AMD64 shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for PAE host to 32-bit shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for PAE host to PAE shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for PAE host paging to AMD64 shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for AMD64 host paging to 32-bit shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for AMD64 host paging to PAE shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Switcher for AMD64 host paging to AMD64 shadow paging. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Used to make a count for array declarations and suchlike. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** The usual 32-bit paranoia. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * VMMRZCallRing3 operations.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Invalid operation. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Acquire the PDM lock. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Acquire the critical section specified as argument. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Acquire the PGM lock. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Grow the PGM shadow page pool. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Maps a chunk into ring-3. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Allocates more handy pages. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Allocates a large (2MB) page. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Acquire the MM hypervisor heap lock. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Replay the REM handler notifications. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /** Flush the GC/R0 logger. */
} VMMCALLRING3;
typedef struct VMM2USERMETHODS
#ifdef IN_RING3
VMMR3DECL(int) VMMR3EmtRendezvous(PVM pVM, uint32_t fFlags, PFNVMMEMTRENDEZVOUS pfnRendezvous, void *pvUser);
VMMR3_INT_DECL(int) VMMR3ReadR0Stack(PVM pVM, VMCPUID idCpu, RTHCUINTPTR R0Addr, void *pvBuf, size_t cbRead);
typedef enum VMMR0OPERATION
* @todo Move got GCFGM.h when it's implemented.
typedef struct GCFGMVALUEREQ
* @todo Move got GCFGM.h when it's implemented.
VMMR0DECL(int) VMMR0EntryEx(PVM pVM, VMCPUID idCpu, VMMR0OPERATION enmOperation, PSUPVMMR0REQHDR pReq, uint64_t u64Arg, PSUPDRVSESSION);
#ifdef LOG_ENABLED
#ifdef IN_RC