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