VirtualBox

source: vbox/trunk/src/VBox/VMM/VBoxVMM.d@ 58980

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

VBoxVMM.d: Temp change for fixing the build till I can test & commit the rest.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 12.1 KB
Line 
1/* $Id: VBoxVMM.d 58980 2015-12-03 22:46:15Z vboxsync $ */
2/** @file
3 * VBoxVMM - Static dtrace probes.
4 */
5
6/*
7 * Copyright (C) 2009-2015 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
18provider vboxvmm
19{
20 probe em__state__changed(struct VMCPU *a_pVCpu, int a_enmOldState, int a_enmNewState, int a_rc);
21 /*^^VMM-ALT-TP: "%d -> %d (rc=%d)", a_enmOldState, a_enmNewState, a_rc */
22
23 probe em__state__unchanged(struct VMCPU *a_pVCpu, int a_enmState, int a_rc);
24 /*^^VMM-ALT-TP: "%d (rc=%d)", a_enmState, a_rc */
25
26 probe em__raw__run__pre(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
27 /*^^VMM-ALT-TP: "%04x:%08llx", (a_pCtx)->cs, (a_pCtx)->rip */
28
29 probe em__raw__run__ret(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, int a_rc);
30 /*^^VMM-ALT-TP: "%04x:%08llx rc=%d", (a_pCtx)->cs, (a_pCtx)->rip, (a_rc) */
31
32 probe em__ff__high(struct VMCPU *a_pVCpu, uint32_t a_fGlobal, uint32_t a_fLocal, int a_rc);
33 /*^^VMM-ALT-TP: "vm=%#x cpu=%#x rc=%d", (a_fGlobal), (a_fLocal), (a_rc) */
34
35 probe em__ff__all(struct VMCPU *a_pVCpu, uint32_t a_fGlobal, uint32_t a_fLocal, int a_rc);
36 /*^^VMM-ALT-TP: "vm=%#x cpu=%#x rc=%d", (a_fGlobal), (a_fLocal), (a_rc) */
37
38 probe em__ff__all__ret(struct VMCPU *a_pVCpu, int a_rc);
39 /*^^VMM-ALT-TP: "%d", (a_rc) */
40
41 probe em__ff__raw(struct VMCPU *a_pVCpu, uint32_t a_fGlobal, uint32_t a_fLocal);
42 /*^^VMM-ALT-TP: "vm=%#x cpu=%#x", (a_fGlobal), (a_fLocal) */
43
44 probe em__ff__raw_ret(struct VMCPU *a_pVCpu, int a_rc);
45 /*^^VMM-ALT-TP: "%d", (a_rc) */
46
47 probe pdm__irq__get( struct VMCPU *a_pVCpu, uint32_t a_uTag, uint32_t a_idSource, uint32_t a_iIrq);
48 probe pdm__irq__high(struct VMCPU *a_pVCpu, uint32_t a_uTag, uint32_t a_idSource);
49 probe pdm__irq__low( struct VMCPU *a_pVCpu, uint32_t a_uTag, uint32_t a_idSource);
50 probe pdm__irq__hilo(struct VMCPU *a_pVCpu, uint32_t a_uTag, uint32_t a_idSource);
51
52
53 probe r0__gvmm__vm__created(void *a_pGVM, void *a_pVM, uint32_t a_Pid, void *a_hEMT0, uint32_t a_cCpus);
54 probe r0__hmsvm__vmexit(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint64_t a_ExitCode, struct SVMVMCB *a_pVmcb);
55 probe r0__hmvmx__vmexit(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint64_t a_ExitReason, uint64_t a_ExitQualification);
56 probe r0__hmvmx__vmexit__noctx(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pIncompleteCtx, uint64_t a_ExitReason);
57
58 probe r0__vmm__return__to__ring3__rc(struct VMCPU *a_pVCpu, struct CPUMCTX *p_Ctx, int a_rc);
59 probe r0__vmm__return__to__ring3__hm(struct VMCPU *a_pVCpu, struct CPUMCTX *p_Ctx, int a_rc);
60
61
62 /** \#DE - integer divide error. */
63 probe xcpt__de(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
64 /** \#DB - debug fault / trap. */
65 probe xcpt__db(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint64_t a_dr6);
66 /** \#BP - breakpoint (INT3). */
67 probe xcpt__bp(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
68 /** \#OF - overflow (INTO). */
69 probe xcpt__of(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
70 /** \#BR - bound range exceeded (BOUND). */
71 probe xcpt__br(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
72 /** \#UD - undefined opcode. */
73 probe xcpt__ud(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
74 /** \#NM - FPU not avaible and more. */
75 probe xcpt__nm(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
76 /** \#DF - double fault. */
77 probe xcpt__df(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
78 /** \#TS - TSS related fault. */
79 probe xcpt__ts(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_uErr);
80 /** \#NP - segment not present. */
81 probe xcpt__np(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_uErr);
82 /** \#SS - stack segment fault. */
83 probe xcpt__ss(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_uErr);
84 /** \#GP - general protection fault. */
85 probe xcpt__gp(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_uErr);
86 /** \#PF - page fault. */
87 probe xcpt__pg(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_uErr, uint64_t a_cr2);
88 /** \#MF - math fault (FPU). */
89 probe xcpt__mf(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
90 /** \#AC - alignment check. */
91 probe xcpt__ac(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
92 /** \#XF - SIMD floating point exception. */
93 probe xcpt__xf(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
94 /** \#VE - virtualization exception. */
95 probe xcpt__ve(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
96 /** \#SX - security exception. */
97 probe xcpt__sx(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_uErr);
98
99 /** Software interrupt (INT XXh). */
100 probe int__software(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint8_t a_iInterrupt);
101 /** Hardware interrupt being dispatched. */
102 probe int__hardware(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint8_t a_iInterrupt, uint32_t a_uTag, uint32_t a_idSource);
103
104 /** Exit - Task switch. */
105 probe exit__task__switch(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
106 /** Exit - HALT instruction.
107 * @todo not yet implemented. */
108 probe exit__halt(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
109 /** Exit - MWAIT instruction. */
110 probe exit__mwait(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
111 /** Exit - MONITOR instruction. */
112 probe exit__monitor(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
113 /** Exit - CPUID instruction (missing stuff in raw-mode). */
114 probe exit__cpuid(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t uLeaf, uint32_t uSubLeaf);
115 /** Exit - INVD instruction. */
116 probe exit__invd(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
117 /** Exit - WBINVD instruction. */
118 probe exit__wbinvd(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
119 /** Exit - INVLPG instruction. */
120 probe exit__invlpg(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
121 /** Exit - RDTSC instruction. */
122 probe exit__rdtsc(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
123 /** Exit - RDTSCP instruction. */
124 probe exit__rdtscp(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
125 /** Exit - RDPMC instruction. */
126 probe exit__rdpmc(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
127 /** Exit - RDMSR instruction. */
128 probe exit__rdmsr(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_idMsr);
129 /** Exit - WRMSR instruction. */
130 probe exit__wrmsr(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint32_t a_idMsr, uint64_t a_uValue);
131 /** Exit - CRx read instruction (missing smsw in raw-mode,
132 * and reads in general in VT-x). */
133 probe exit__crx__read(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint8_t a_iReg);
134 /** Exit - CRx write instruction. */
135 probe exit__crx__write(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint8_t a_iReg);
136 /** Exit - DRx read instruction. */
137 probe exit__drx__read(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint8_t a_iReg);
138 /** Exit - DRx write instruction. */
139 probe exit__drx__write(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx, uint8_t a_iReg);
140 /** Exit - PAUSE instruction (not in raw-mode). */
141 probe exit__pause(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
142 /** Exit - XSETBV instruction. */
143 probe exit__xsetbv(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
144 /** Exit - SIDT instruction. */
145 probe exit__sidt(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
146 /** Exit - LIDT instruction. */
147 probe exit__lidt(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
148 /** Exit - SGDT instruction. */
149 probe exit__sgdt(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
150 /** Exit - LGDT instruction. */
151 probe exit__lgdt(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
152 /** Exit - SLDT instruction. */
153 probe exit__sldt(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
154 /** Exit - LLDT instruction. */
155 probe exit__lldt(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
156 /** Exit - STR instruction. */
157 probe exit__str(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
158 /** Exit - LTR instruction. */
159 probe exit__ltr(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
160 /** Exit - GETSEC instruction. */
161 probe exit__getsec(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
162 /** Exit - RSM instruction. */
163 probe exit__rsm(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
164 /** Exit - RDRAND instruction. */
165 probe exit__rdrand(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
166 /** Exit - RDSEED instruction. */
167 probe exit__rdseed(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
168 /** Exit - XSAVES instruction. */
169 probe exit__xsaves(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
170 /** Exit - XRSTORS instruction. */
171 probe exit__xrstors(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
172 /** Exit - VMCALL (intel) or VMMCALL (AMD) instruction. */
173 probe exit__vmm__call(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
174
175 /** Exit - VT-x VMCLEAR instruction. */
176 probe exit__vmx__vmclear(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
177 /** Exit - VT-x VMLAUNCH instruction. */
178 probe exit__vmx__vmlaunch(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
179 /** Exit - VT-x VMPTRLD instruction. */
180 probe exit__vmx__vmptrld(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
181 /** Exit - VT-x VMPTRST instruction. */
182 probe exit__vmx__vmptrst(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
183 /** Exit - VT-x VMREAD instruction. */
184 probe exit__vmx__vmread(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
185 /** Exit - VT-x VMRESUME instruction. */
186 probe exit__vmx__vmresume(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
187 /** Exit - VT-x VMWRITE instruction. */
188 probe exit__vmx__vmwrite(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
189 /** Exit - VT-x VMXOFF instruction. */
190 probe exit__vmx__vmxoff(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
191 /** Exit - VT-x VMXON instruction. */
192 probe exit__vmx__vmxon(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
193 /** Exit - VT-x VMFUNC instruction. */
194 probe exit__vmx__vmfunc(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
195 /** Exit - VT-x INVEPT instruction. */
196 probe exit__vmx__invept(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
197 /** Exit - VT-x INVVPID instruction. */
198 probe exit__vmx__invvpid(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
199 /** Exit - VT-x INVPCID instruction. */
200 probe exit__vmx__invpcid(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
201 /** Exit - VT-x EPT violation. */
202 probe exit__vmx__ept__violation(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
203 /** Exit - VT-x EPT misconfiguration. */
204 probe exit__vmx__ept__misconfig(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
205 /** Exit - VT-x Virtual APIC page access. */
206 probe exit__vmx__vapic__access(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
207 /** Exit - VT-x Virtual APIC page write needing virtualizing. */
208 probe exit__vmx__vapic__write(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
209
210 /** Exit - AMD-V VMRUN instruction. */
211 probe exit__svm__vmrun(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
212 /** Exit - AMD-V VMLOAD instruction. */
213 probe exit__svm__vmload(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
214 /** Exit - AMD-V VMSAVE instruction. */
215 probe exit__svm__vmsave(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
216 /** Exit - AMD-V STGI instruction. */
217 probe exit__svm__stgi(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
218 /** Exit - AMD-V CLGI instruction. */
219 probe exit__svm__clgi(struct VMCPU *a_pVCpu, struct CPUMCTX *a_pCtx);
220};
221
222#pragma D attributes Evolving/Evolving/Common provider vboxvmm provider
223#pragma D attributes Private/Private/Unknown provider vboxvmm module
224#pragma D attributes Private/Private/Unknown provider vboxvmm function
225#pragma D attributes Evolving/Evolving/Common provider vboxvmm name
226#pragma D attributes Evolving/Evolving/Common provider vboxvmm args
227
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