affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * PGM - Internal VMM header file.
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2006-2011 Oracle Corporation
affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * available from http://www.virtualbox.org. This file is free software;
affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * you can redistribute it and/or modify it under the terms of the GNU
affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * General Public License (GPL) as published by the Free Software
affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
affe32a95c4c38d5631aefc2a1ed322997767116vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync/** @defgroup grp_pgm_int Internals
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * @ingroup grp_pgm
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * @internal
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * Page type.
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * @remarks This enum has to fit in a 3-bit field (see PGMPAGE::u3Type).
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * @remarks This is used in the saved state, so changes to it requires bumping
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * the saved state version.
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * @todo So, convert to \#defines!
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** The usual invalid zero entry. */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** RAM page. (RWX) */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** MMIO2 page. (RWX) */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** MMIO2 page aliased over an MMIO page. (RWX)
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync * See PGMHandlerPhysicalPageAlias(). */
b2fae6494c13147d0f29944b9bf048705a32750avboxsync /** Special page aliased over an MMIO page. (RWX)
b2fae6494c13147d0f29944b9bf048705a32750avboxsync * See PGMHandlerPhysicalPageAliasHC(), but this is generally only used for
b2fae6494c13147d0f29944b9bf048705a32750avboxsync * VT-x's APIC access page at the moment. Treated as MMIO by everyone except
b2fae6494c13147d0f29944b9bf048705a32750avboxsync * the shadow paging code. */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** Shadowed ROM. (RWX) */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** ROM page. (R-X) */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** MMIO page. (---) */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsync /** End of valid entries. */
172a5e92ef4c9d32cf6c85c57a2d084b746ba5e9vboxsyncVMMDECL(PGMPAGETYPE) PGMPhysGetPageType(PVM pVM, RTGCPHYS GCPhys);
affe32a95c4c38d5631aefc2a1ed322997767116vboxsyncVMMDECL(int) PGMPhysGCPhys2HCPhys(PVM pVM, RTGCPHYS GCPhys, PRTHCPHYS pHCPhys);
affe32a95c4c38d5631aefc2a1ed322997767116vboxsyncVMMDECL(int) PGMPhysGCPtr2HCPhys(PVMCPU pVCpu, RTGCPTR GCPtr, PRTHCPHYS pHCPhys);
affe32a95c4c38d5631aefc2a1ed322997767116vboxsyncVMMDECL(int) PGMPhysGCPhys2CCPtr(PVM pVM, RTGCPHYS GCPhys, void **ppv, PPGMPAGEMAPLOCK pLock);
affe32a95c4c38d5631aefc2a1ed322997767116vboxsyncVMMDECL(int) PGMPhysGCPhys2CCPtrReadOnly(PVM pVM, RTGCPHYS GCPhys, void const **ppv, PPGMPAGEMAPLOCK pLock);
affe32a95c4c38d5631aefc2a1ed322997767116vboxsyncVMMDECL(int) PGMPhysGCPtr2CCPtr(PVMCPU pVCpu, RTGCPTR GCPtr, void **ppv, PPGMPAGEMAPLOCK pLock);
affe32a95c4c38d5631aefc2a1ed322997767116vboxsyncVMMDECL(int) PGMPhysGCPtr2CCPtrReadOnly(PVMCPU pVCpu, RTGCPTR GCPtr, void const **ppv, PPGMPAGEMAPLOCK pLock);