VirtualBox

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

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

VMM: Reworked most of the call-ring-3 stuff into setjmp-longjmp-on-assert and removed the stack switching/copying/resume code. bugref:10093 bugref:10124

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 3.2 KB
Line 
1; $Id: VMMInternal.mac 92408 2021-11-12 21:49:06Z 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
22struc VMMR0JMPBUF
23 ;
24 ; traditional jmp_buf
25 ;
26%ifdef RT_ARCH_X86
27 .ebx resd 1
28 .esi resd 1
29 .edi resd 1
30 .ebp resd 1
31 .esp resd 1
32 .eip resd 1
33 .eflags resd 1
34%endif
35%ifdef RT_ARCH_AMD64
36 .rbx resq 1
37 %ifdef RT_OS_WINDOWS
38 .rsi resq 1
39 .rdi resq 1
40 %endif
41 .rbp resq 1
42 .r12 resq 1
43 .r13 resq 1
44 .r14 resq 1
45 .r15 resq 1
46 .rsp resq 1
47 .rip resq 1
48 %ifdef RT_OS_WINDOWS
49 .xmm6 resq 2
50 .xmm7 resq 2
51 .xmm8 resq 2
52 .xmm9 resq 2
53 .xmm10 resq 2
54 .xmm11 resq 2
55 .xmm12 resq 2
56 .xmm13 resq 2
57 .xmm14 resq 2
58 .xmm15 resq 2
59 %endif
60 .rflags resq 1
61%endif
62
63 ;
64 ; Additional state and stack info for unwinding.
65 ;
66 .UnwindSp RTR0PTR_RES 1
67 .UnwindRetSp RTR0PTR_RES 1
68 .UnwindBp RTR0PTR_RES 1
69 .UnwindPc RTR0PTR_RES 1
70 .UnwindRetPcValue RTR0PTR_RES 1
71 .UnwindRetPcLocation RTR0PTR_RES 1
72
73 ;
74 ; Info about what we were doing in case it's helpful.
75 ;
76 .pfn RTR0PTR_RES 1
77 .pvUser1 RTR0PTR_RES 1
78 .pvUser2 RTR0PTR_RES 1
79
80 ;
81 ; For mirroring the jump buffer and stack to ring-3 for unwinding and analysis.
82 ;
83 .cbStackValid resd 1
84 .cbStackBuf resd 1
85 .pvStackBuf RTR0PTR_RES 1
86 .pMirrorBuf RTR0PTR_RES 1
87endstruc
88
89
90struc VMMCPU
91
92 .iLastGZRc resd 1
93 alignb 8
94
95 .fInRendezvous resb 1
96 .afPadding1 resb 2
97 .fMayHaltInRing0 resb 1
98 .cNsSpinBlockThreshold resd 1
99 .cR0Halts resd 1
100 .cR0HaltsSucceeded resd 1
101 .cR0HaltsToRing3 resd 1
102
103 alignb 8
104 .TracerCtx resb SUPDRVTRACERUSRCTX64_size
105
106 alignb 8
107 .AssertJmpBuf resb 1
108endstruc
109
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