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