CPUMInternal.h revision e81fcacffd773bfad1960a53ee6ab1bcd3174abc
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * CPUM - Internal header file.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * available from http://www.virtualbox.org. This file is free software;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * you can redistribute it and/or modify it under the terms of the GNU
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * General Public License (GPL) as published by the Free Software
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * additional information or have any questions.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @defgroup grp_cpum_int Internals
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @ingroup grp_cpum
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @internal
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Flags and types for CPUM fault handlers
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Type: Load DS */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Type: Load ES */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Type: Load FS */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Type: Load GS */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Type: IRET */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Type mask. */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** If set EBP points to the CPUMCTXCORE that's being used. */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Use flags (CPUM::fUseFlags).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * (Don't forget to sync this with CPUMInternal.mac!)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Used the FPU, SSE or such stuff. */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Used the FPU, SSE or such stuff since last we were in REM.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * REM syncing is clearing this, lazy FPU is setting it. */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** Host OS is using SYSENTER and we must NULL the CS. */
typedef struct CPUMHOSTCTX
# ifdef VBOX_WITH_HYBRID_32BIT_KERNEL
} CPUMHOSTCTX;
typedef struct CPUM
} CPUFeatures;
} CR4;
bool fRawEntered;
} CPUM;
typedef struct CPUMCPU
#ifdef IN_RING0