VMMInternal.mac revision b6e99e36e1edd88ecdbb2d4f2a9143f5f3e4df37
78a072e1b56619e3230735ae073668311232ec94vboxsync; $Id$
78a072e1b56619e3230735ae073668311232ec94vboxsync;; @file
78a072e1b56619e3230735ae073668311232ec94vboxsync; VMM - Internal header file.
78a072e1b56619e3230735ae073668311232ec94vboxsync;
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync;
78a072e1b56619e3230735ae073668311232ec94vboxsync; Copyright (C) 2006-2009 Oracle Corporation
78a072e1b56619e3230735ae073668311232ec94vboxsync;
78a072e1b56619e3230735ae073668311232ec94vboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
78a072e1b56619e3230735ae073668311232ec94vboxsync; available from http://www.virtualbox.org. This file is free software;
78a072e1b56619e3230735ae073668311232ec94vboxsync; you can redistribute it and/or modify it under the terms of the GNU
78a072e1b56619e3230735ae073668311232ec94vboxsync; General Public License (GPL) as published by the Free Software
78a072e1b56619e3230735ae073668311232ec94vboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
78a072e1b56619e3230735ae073668311232ec94vboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
78a072e1b56619e3230735ae073668311232ec94vboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
78a072e1b56619e3230735ae073668311232ec94vboxsync;
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync%include "VBox/asmdefs.mac"
78a072e1b56619e3230735ae073668311232ec94vboxsync%include "VBox/sup.mac"
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync;
78a072e1b56619e3230735ae073668311232ec94vboxsync; Determine the default stack switching unless specified explicitly.
78a072e1b56619e3230735ae073668311232ec94vboxsync;
78a072e1b56619e3230735ae073668311232ec94vboxsync%ifndef VMM_R0_SWITCH_STACK
78a072e1b56619e3230735ae073668311232ec94vboxsync %ifndef VMM_R0_NO_SWITCH_STACK
78a072e1b56619e3230735ae073668311232ec94vboxsync %ifdef RT_OS_DARWIN
78a072e1b56619e3230735ae073668311232ec94vboxsync %define VMM_R0_SWITCH_STACK
78a072e1b56619e3230735ae073668311232ec94vboxsync %endif
78a072e1b56619e3230735ae073668311232ec94vboxsync %endif
78a072e1b56619e3230735ae073668311232ec94vboxsync%endif
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsyncstruc VMMR0JMPBUF
78a072e1b56619e3230735ae073668311232ec94vboxsync%ifdef RT_ARCH_X86
78a072e1b56619e3230735ae073668311232ec94vboxsync ; traditional jmp_buf
78a072e1b56619e3230735ae073668311232ec94vboxsync .ebx resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .esi resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .edi resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .ebp resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .esp resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .eip resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .eflags resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync ; additional state and stack info.
78a072e1b56619e3230735ae073668311232ec94vboxsync .fInRing3Call resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .cbSavedStack resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .pvSavedStack resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SpCheck resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SpResume resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SavedEsp resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SavedEbp resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync%endif
78a072e1b56619e3230735ae073668311232ec94vboxsync%ifdef RT_ARCH_AMD64
78a072e1b56619e3230735ae073668311232ec94vboxsync ; traditional jmp_buf
78a072e1b56619e3230735ae073668311232ec94vboxsync .rbx resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync %ifdef RT_OS_WINDOWS
78a072e1b56619e3230735ae073668311232ec94vboxsync .rsi resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .rdi resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync %endif
78a072e1b56619e3230735ae073668311232ec94vboxsync .rbp resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .r12 resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .r13 resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .r14 resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .r15 resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .rsp resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .rip resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync %ifdef RT_OS_WINDOWS
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm6 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm7 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm8 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm9 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm10 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm11 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm12 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm13 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm14 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync .xmm15 resq 2
78a072e1b56619e3230735ae073668311232ec94vboxsync %endif
78a072e1b56619e3230735ae073668311232ec94vboxsync .rflags resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync ; additional state and stack info.
78a072e1b56619e3230735ae073668311232ec94vboxsync .fInRing3Call resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .cbSavedStack resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .pvSavedStack resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SpCheck resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SpResume resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SavedEsp resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .SavedEbp resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync%endif
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync ; Statistics
78a072e1b56619e3230735ae073668311232ec94vboxsync .cbUsedMax resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .cbUsedAvg resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .cbUsedTotal resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .cUsedTotal resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsyncendstruc
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsyncstruc VMMCPU
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync .offVMCPU resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .iLastGZRc resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .pbEMTStackR3 RTR3PTR_RES 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .pbEMTStackRC RTRCPTR_RES 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .pbEMTStackBottomRC RTRCPTR_RES 1
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync .pR0LoggerR3 RTR3PTR_RES 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .pR0LoggerR0 RTR0PTR_RES 1
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync .fInRendezvous resb 1
78a072e1b56619e3230735ae073668311232ec94vboxsync%if HC_ARCH_BITS == 32
78a072e1b56619e3230735ae073668311232ec94vboxsync .afPadding resb 3
78a072e1b56619e3230735ae073668311232ec94vboxsync%else
78a072e1b56619e3230735ae073668311232ec94vboxsync .afPadding resb 7
78a072e1b56619e3230735ae073668311232ec94vboxsync%endif
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync alignb 8
78a072e1b56619e3230735ae073668311232ec94vboxsync .TracerCtx resb SUPDRVTRACERUSRCTX64_size
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync .au32Padding1 resd 3
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync .cCallRing3Disabled resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .enmCallRing3Operation resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .rcCallRing3 resd 1
78a072e1b56619e3230735ae073668311232ec94vboxsync .u64CallRing3Arg resq 1
78a072e1b56619e3230735ae073668311232ec94vboxsync ; .CallRing3JmpBufR0 resb no-can-do
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsyncendstruc
78a072e1b56619e3230735ae073668311232ec94vboxsync
78a072e1b56619e3230735ae073668311232ec94vboxsync