VirtualBox

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

Last change on this file since 91750 was 91750, checked in by vboxsync, 3 years ago

VMM: Don't switch stack on darwin - missed one place.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 3.5 KB
Line 
1; $Id: VMMInternal.mac 91750 2021-10-15 07:51:12Z vboxsync $
2;; @file
3; VMM - Internal header file.
4;
5
6;
7; Copyright (C) 2006-2020 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 ; No-one uses stack switching any more.
27 %endif
28%endif
29
30
31struc VMMR0JMPBUF
32%ifdef RT_ARCH_X86
33 ; traditional jmp_buf
34 .ebx resd 1
35 .esi resd 1
36 .edi resd 1
37 .ebp resd 1
38 .esp resd 1
39 .eip resd 1
40 .eflags resd 1
41
42 ; additional state and stack info.
43 .fInRing3Call resd 1
44 .cbSavedStack resd 1
45 .pvSavedStack resd 1
46 .SpCheck resd 1
47 .SpResume resd 1
48 .SavedEsp resd 1
49 .SavedEbp resd 1
50 .SavedEipForUnwind resd 1
51 .UnwindRetPcValue resd 1
52 .UnwindRetPcLocation resd 1
53 .pfn resd 1
54 .pvUser1 resd 1
55 .pvUser2 resd 1
56%endif
57%ifdef RT_ARCH_AMD64
58 ; traditional jmp_buf
59 .rbx resq 1
60 %ifdef RT_OS_WINDOWS
61 .rsi resq 1
62 .rdi resq 1
63 %endif
64 .rbp resq 1
65 .r12 resq 1
66 .r13 resq 1
67 .r14 resq 1
68 .r15 resq 1
69 .rsp resq 1
70 .rip resq 1
71 %ifdef RT_OS_WINDOWS
72 .xmm6 resq 2
73 .xmm7 resq 2
74 .xmm8 resq 2
75 .xmm9 resq 2
76 .xmm10 resq 2
77 .xmm11 resq 2
78 .xmm12 resq 2
79 .xmm13 resq 2
80 .xmm14 resq 2
81 .xmm15 resq 2
82 %endif
83 .rflags resq 1
84
85 ; additional state and stack info.
86 .fInRing3Call resd 1
87 .cbSavedStack resd 1
88 .pvSavedStack resq 1
89 .SpCheck resq 1
90 .SpResume resq 1
91 .SavedEsp resq 1
92 .SavedEbp resq 1
93 .SavedEipForUnwind resq 1
94 .UnwindRetPcValue resq 1
95 .UnwindRetPcLocation resq 1
96 .pfn resq 1
97 .pvUser1 resq 1
98 .pvUser2 resq 1
99%endif
100
101 ; Statistics
102 alignb 8
103 .cbUsedMax resd 1
104 .cbUsedAvg resd 1
105 .cbUsedTotal resq 1
106 .cUsedTotal resq 1
107endstruc
108
109
110struc VMMCPU
111
112 .iLastGZRc resd 1
113 alignb 8
114 .pbEMTStackR3 RTR3PTR_RES 1
115
116 .fInRendezvous resb 1
117 .afPadding1 resb 2
118 .fMayHaltInRing0 resb 1
119 .cNsSpinBlockThreshold resd 1
120 .cR0Halts resd 1
121 .cR0HaltsSucceeded resd 1
122 .cR0HaltsToRing3 resd 1
123
124 alignb 8
125 .TracerCtx resb SUPDRVTRACERUSRCTX64_size
126
127 .au32Padding3 resd 1
128
129 .cCallRing3Disabled resd 1
130 .enmCallRing3Operation resd 1
131 .rcCallRing3 resd 1
132 alignb 8
133 .u64CallRing3Arg resq 1
134 .pfnCallRing3CallbackR0 RTR0PTR_RES 1
135 .pvCallRing3CallbackUserR0 RTR0PTR_RES 1
136 ; .CallRing3JmpBufR0 resb no-can-do
137endstruc
138
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