cpumctx-v1_6.h revision 9bedaef3837bb056678dc8d140215ae43fca1729
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * CPUM - CPU Monitor(/ Manager), Context Structures from v1.6 (saved state).
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * Copyright (C) 2006-2012 Oracle Corporation
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * available from http://www.virtualbox.org. This file is free software;
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * General Public License (GPL) as published by the Free Software
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * The contents of this file may alternatively be used under the terms
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * of the Common Development and Distribution License Version 1.0
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * VirtualBox OSE distribution, in which case the provisions of the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * CDDL are applicable instead of those of the GPL.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * You may elect to license modified versions of this file under the
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * terms and conditions of either the GPL or the CDDL or both.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync/** @addgroup grp_cpum_ctx_v1_6 The CPUM Context Structures from v1.6
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync * @ingroup grp_cpum
29099c2d04b11e614f1fa399fab9e9162f2788b9vboxsync/** IDTR from version 1.6 */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** Size of the IDT. */
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync /** Address of the IDT. */
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync * Selector hidden registers, for version 1.6 saved state.
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync /** Base register. */
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync /** Limit (expanded). */
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync * This is the high 32-bit word of the descriptor entry.
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync * Only the flags, dpl and type are used. */
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync * CPU context, for version 1.6 saved state.
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync * @remarks PATM uses this, which is why it has to be here.
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync /** FPU state. (16-byte alignment)
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync * @todo This doesn't have to be in X86FXSTATE on CPUs without fxsr - we need a type for the
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync * actual format or convert it (waste of time). */
5c4d7e2aae42bbf39793dfa686925f076a56b4d5vboxsync /** CPUMCTXCORE Part.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** @note We rely on the exact layout, because we use lss esp, [] in the
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * switcher. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /* Note: no overlap with esp here. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync RTSEL csPadding[3]; /**< 3 words to force 8 byte alignment for the remainder. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** Hidden selector registers.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** Control registers.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** Debug registers.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /* DR8-15 are currently not supported */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** Global Descriptor Table register. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** Interrupt Descriptor Table register. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** The task register.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Only the guest context uses all the members. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** The task register.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * Only the guest context uses all the members. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** The sysenter msr registers.
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync * This member is not used by the hypervisor context. */
0c69348b58bb8eabb1bea8867ee932b667bd0d34vboxsync /** System MSRs.
66b58af085e22ee26be57f98127fb49ee2e91790vboxsync /** Hidden selector registers.
66b58af085e22ee26be57f98127fb49ee2e91790vboxsync /** padding to get 32byte aligned size. */