VirtualBox

source: vbox/trunk/src/VBox/VMM/include/VMMInternal.mac@ 55863

Last change on this file since 55863 was 55863, checked in by vboxsync, 9 years ago

IPRT,SUPDrv,VMM: Revised the context switching hook interface. Do less work when enabling the hook (formerly 'registration'). Drop the reference counting (kept internally for solaris) as it complicates restrictions wrt destroying enabled hooks. Bumped support driver version.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.3 KB
Line 
1; $Id: VMMInternal.mac 55863 2015-05-14 18:29:34Z vboxsync $
2;; @file
3; VMM - Internal header file.
4;
5
6;
7; Copyright (C) 2006-2012 Oracle Corporation
8;
9; This file is part of VirtualBox Open Source Edition (OSE), as
10; available from http://www.virtualbox.org. This file is free software;
11; you can redistribute it and/or modify it under the terms of the GNU
12; General Public License (GPL) as published by the Free Software
13; Foundation, in version 2 as it comes in the "COPYING" file of the
14; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16;
17
18%include "VBox/asmdefs.mac"
19%include "VBox/sup.mac"
20
21;
22; Determine the default stack switching unless specified explicitly.
23;
24%ifndef VMM_R0_SWITCH_STACK
25 %ifndef VMM_R0_NO_SWITCH_STACK
26 %ifdef RT_OS_DARWIN
27 %define VMM_R0_SWITCH_STACK
28 %endif
29 %endif
30%endif
31
32
33struc VMMR0JMPBUF
34%ifdef RT_ARCH_X86
35 ; traditional jmp_buf
36 .ebx resd 1
37 .esi resd 1
38 .edi resd 1
39 .ebp resd 1
40 .esp resd 1
41 .eip resd 1
42 .eflags resd 1
43
44 ; additional state and stack info.
45 .fInRing3Call resd 1
46 .cbSavedStack resd 1
47 .pvSavedStack resd 1
48 .SpCheck resd 1
49 .SpResume resd 1
50 .SavedEsp resd 1
51 .SavedEbp resd 1
52%endif
53%ifdef RT_ARCH_AMD64
54 ; traditional jmp_buf
55 .rbx resq 1
56 %ifdef RT_OS_WINDOWS
57 .rsi resq 1
58 .rdi resq 1
59 %endif
60 .rbp resq 1
61 .r12 resq 1
62 .r13 resq 1
63 .r14 resq 1
64 .r15 resq 1
65 .rsp resq 1
66 .rip resq 1
67 %ifdef RT_OS_WINDOWS
68 .xmm6 resq 2
69 .xmm7 resq 2
70 .xmm8 resq 2
71 .xmm9 resq 2
72 .xmm10 resq 2
73 .xmm11 resq 2
74 .xmm12 resq 2
75 .xmm13 resq 2
76 .xmm14 resq 2
77 .xmm15 resq 2
78 %endif
79 .rflags resq 1
80
81 ; additional state and stack info.
82 .fInRing3Call resd 1
83 .cbSavedStack resd 1
84 .pvSavedStack resq 1
85 .SpCheck resq 1
86 .SpResume resq 1
87 .SavedEsp resq 1
88 .SavedEbp resq 1
89%endif
90
91 ; Statistics
92 .cbUsedMax resd 1
93 .cbUsedAvg resd 1
94 .cbUsedTotal resq 1
95 .cUsedTotal resq 1
96endstruc
97
98
99struc VMMCPU
100
101 .offVMCPU resd 1
102 .iLastGZRc resd 1
103 .pbEMTStackR3 RTR3PTR_RES 1
104 .pbEMTStackRC RTRCPTR_RES 1
105 .pbEMTStackBottomRC RTRCPTR_RES 1
106
107 .pR0LoggerR3 RTR3PTR_RES 1
108 .pR0LoggerR0 RTR0PTR_RES 1
109
110 .hCtxHook RTR0PTR_RES 1
111
112 .fInRendezvous resb 1
113%if HC_ARCH_BITS == 32
114 .afPadding resb 3+4
115%else
116 .afPadding resb 7+8
117%endif
118
119 alignb 8
120 .TracerCtx resb SUPDRVTRACERUSRCTX64_size
121
122 .au32Padding1 resd 3
123
124 .cCallRing3Disabled resd 1
125 .enmCallRing3Operation resd 1
126 .rcCallRing3 resd 1
127 .u64CallRing3Arg resq 1
128 .pfnCallRing3CallbackR0 RTR0PTR_RES 1
129 .pvCallRing3CallbackUserR0 RTR0PTR_RES 1
130 ; .CallRing3JmpBufR0 resb no-can-do
131endstruc
132
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette