VirtualBox

source: vbox/trunk/src/VBox/Debugger/testcase/tstDBGCStubs.cpp@ 86728

Last change on this file since 86728 was 86101, checked in by vboxsync, 4 years ago

Debugger: Add 'writegstmem' command to load data from a file and write it to guest memory at a particular address [build fix]

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 20.4 KB
Line 
1/* $Id: tstDBGCStubs.cpp 86101 2020-09-13 08:17:45Z vboxsync $ */
2/** @file
3 * DBGC Testcase - Command Parser, VMM Stub Functions.
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/err.h>
19#include <VBox/vmm/vmapi.h>
20#include <iprt/string.h>
21
22
23
24#include <VBox/vmm/dbgf.h>
25VMMR3DECL(PDBGFADDRESS) DBGFR3AddrFromFlat(PUVM pUVM, PDBGFADDRESS pAddress, RTGCUINTPTR FlatPtr)
26{
27 return NULL;
28}
29
30VMMR3DECL(int) DBGFR3AddrFromSelOff(PUVM pUVM, VMCPUID idCpu, PDBGFADDRESS pAddress, RTSEL Sel, RTUINTPTR off)
31{
32 /* bad:bad -> provke error during parsing. */
33 if (Sel == 0xbad && off == 0xbad)
34 return VERR_OUT_OF_SELECTOR_BOUNDS;
35
36 /* real mode conversion. */
37 pAddress->FlatPtr = (uint32_t)(Sel << 4) | off;
38 pAddress->fFlags |= DBGFADDRESS_FLAGS_FLAT;
39 pAddress->Sel = DBGF_SEL_FLAT;
40 pAddress->off = pAddress->FlatPtr;
41 return VINF_SUCCESS;
42}
43
44VMMR3DECL(int) DBGFR3AddrToPhys(PUVM pUVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, PRTGCPHYS pGCPhys)
45{
46 return VERR_INTERNAL_ERROR;
47}
48
49VMMR3DECL(int) DBGFR3Attach(PUVM pUVM)
50{
51 return VERR_INTERNAL_ERROR;
52}
53
54VMMR3DECL(int) DBGFR3BpClear(PUVM pUVM, RTUINT iBp)
55{
56 return VERR_INTERNAL_ERROR;
57}
58VMMR3DECL(int) DBGFR3BpDisable(PUVM pUVM, RTUINT iBp)
59{
60 return VERR_INTERNAL_ERROR;
61}
62VMMR3DECL(int) DBGFR3BpEnable(PUVM pUVM, RTUINT iBp)
63{
64 return VERR_INTERNAL_ERROR;
65}
66VMMR3DECL(int) DBGFR3BpEnum(PUVM pUVM, PFNDBGFBPENUM pfnCallback, void *pvUser)
67{
68 return VERR_INTERNAL_ERROR;
69}
70VMMR3DECL(int) DBGFR3BpSetInt3(PUVM pUVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, uint64_t iHitTrigger, uint64_t iHitDisable, PRTUINT piBp)
71{
72 return VERR_INTERNAL_ERROR;
73}
74VMMR3DECL(int) DBGFR3BpSetReg(PUVM pUVM, PCDBGFADDRESS pAddress, uint64_t iHitTrigger, uint64_t iHitDisable,
75 uint8_t fType, uint8_t cb, PRTUINT piBp)
76{
77 return VERR_INTERNAL_ERROR;
78}
79VMMR3DECL(int) DBGFR3BpSetREM(PUVM pUVM, PCDBGFADDRESS pAddress, uint64_t iHitTrigger, uint64_t iHitDisable, PRTUINT piBp)
80{
81 return VERR_INTERNAL_ERROR;
82}
83VMMR3DECL(int) DBGFR3QueryWaitable(PUVM pUVM)
84{
85 return VINF_SUCCESS;
86}
87VMMR3DECL(int) DBGFR3Detach(PUVM pUVM)
88{
89 return VERR_INTERNAL_ERROR;
90}
91VMMR3DECL(int) DBGFR3DisasInstrEx(PUVM pUVM, VMCPUID idCpu, RTSEL Sel, RTGCPTR GCPtr, uint32_t fFlags,
92 char *pszOutput, uint32_t cchOutput, uint32_t *pcbInstr)
93{
94 return VERR_INTERNAL_ERROR;
95}
96VMMR3DECL(int) DBGFR3EventWait(PUVM pUVM, RTMSINTERVAL cMillies, PDBGFEVENT pEvent)
97{
98 return VERR_INTERNAL_ERROR;
99}
100VMMR3DECL(int) DBGFR3EventConfigEx(PUVM pUVM, PCDBGFEVENTCONFIG paConfigs, size_t cConfigs)
101{
102 return VERR_INTERNAL_ERROR;
103}
104VMMR3DECL(int) DBGFR3InterruptConfigEx(PUVM pUVM, PCDBGFINTERRUPTCONFIG paConfigs, size_t cConfigs)
105{
106 return VERR_INTERNAL_ERROR;
107}
108
109VMMR3DECL(int) DBGFR3Halt(PUVM pUVM, VMCPUID idCpu)
110{
111 return VERR_INTERNAL_ERROR;
112}
113VMMR3DECL(int) DBGFR3Info(PUVM pUVM, const char *pszName, const char *pszArgs, PCDBGFINFOHLP pHlp)
114{
115 return VERR_INTERNAL_ERROR;
116}
117VMMR3DECL(int) DBGFR3InfoEx(PUVM pUVM, VMCPUID idCpu, const char *pszName, const char *pszArgs, PCDBGFINFOHLP pHlp)
118{
119 return VERR_INTERNAL_ERROR;
120}
121VMMR3DECL(void) DBGFR3InfoGenricGetOptError(PCDBGFINFOHLP pHlp, int rc, union RTGETOPTUNION *pValueUnion, struct RTGETOPTSTATE *pState)
122{
123}
124VMMR3DECL(bool) DBGFR3IsHalted(PUVM pUVM, VMCPUID idCpu)
125{
126 return true;
127}
128VMMR3DECL(int) DBGFR3LogModifyDestinations(PUVM pUVM, const char *pszDestSettings)
129{
130 return VERR_INTERNAL_ERROR;
131}
132VMMR3DECL(int) DBGFR3LogModifyFlags(PUVM pUVM, const char *pszFlagSettings)
133{
134 return VERR_INTERNAL_ERROR;
135}
136VMMR3DECL(int) DBGFR3LogModifyGroups(PUVM pUVM, const char *pszGroupSettings)
137{
138 return VERR_INTERNAL_ERROR;
139}
140VMMR3DECL(RTDBGCFG) DBGFR3AsGetConfig(PUVM pUVM)
141{
142 return NIL_RTDBGCFG;
143}
144VMMR3DECL(int) DBGFR3AsLoadImage(PUVM pUVM, RTDBGAS hAS, const char *pszFilename, const char *pszModName, RTLDRARCH enmArch,
145 PCDBGFADDRESS pModAddress, RTDBGSEGIDX iModSeg, uint32_t fFlags)
146{
147 return VERR_INTERNAL_ERROR;
148}
149VMMR3DECL(int) DBGFR3AsLoadMap(PUVM pUVM, RTDBGAS hAS, const char *pszFilename, const char *pszModName, PCDBGFADDRESS pModAddress, RTDBGSEGIDX iModSeg, RTGCUINTPTR uSubtrahend, uint32_t fFlags)
150{
151 return VERR_INTERNAL_ERROR;
152}
153VMMR3DECL(int) DBGFR3AsUnlinkModuleByName(PUVM pUVM, RTDBGAS hDbgAs, const char *pszModName)
154{
155 return VERR_INTERNAL_ERROR;
156}
157VMMR3DECL(RTDBGAS) DBGFR3AsResolveAndRetain(PUVM pUVM, RTDBGAS hAlias)
158{
159 return NIL_RTDBGAS;
160}
161VMMR3DECL(int) DBGFR3AsLineByAddr(PUVM pUVM, RTDBGAS hDbgAs, PCDBGFADDRESS pAddress,
162 PRTGCINTPTR poffDisp, PRTDBGLINE pLine, PRTDBGMOD phMod)
163{
164 return VERR_DBG_LINE_NOT_FOUND;
165}
166VMMR3DECL(int) DBGFR3Resume(PUVM pUVM, VMCPUID idCpu)
167{
168 return VERR_INTERNAL_ERROR;
169}
170VMMR3DECL(int) DBGFR3StackWalkBegin(PUVM pUVM, VMCPUID idCpu, DBGFCODETYPE enmCodeType, PCDBGFSTACKFRAME *ppFirstFrame)
171{
172 return VERR_INTERNAL_ERROR;
173}
174VMMR3DECL(PCDBGFSTACKFRAME) DBGFR3StackWalkNext(PCDBGFSTACKFRAME pCurrent)
175{
176 return NULL;
177}
178VMMR3DECL(void) DBGFR3StackWalkEnd(PCDBGFSTACKFRAME pFirstFrame)
179{
180}
181VMMR3DECL(int) DBGFR3StepEx(PUVM pUVM, VMCPUID idCpu, uint32_t fFlags, PCDBGFADDRESS pStopPcAddr,
182 PCDBGFADDRESS pStopPopAddr, RTGCUINTPTR cbStopPop, uint32_t cMaxSteps)
183{
184 return VERR_INTERNAL_ERROR;
185}
186VMMR3DECL(int) DBGFR3AsSymbolByAddr(PUVM pUVM, RTDBGAS hDbgAs, PCDBGFADDRESS pAddress, uint32_t fFlags, PRTGCINTPTR poffDisplacement, PRTDBGSYMBOL pSymbol, PRTDBGMOD phMod)
187{
188 return VERR_INTERNAL_ERROR;
189}
190VMMR3DECL(PRTDBGSYMBOL) DBGFR3AsSymbolByAddrA(PUVM pUVM, RTDBGAS hDbgAs, PCDBGFADDRESS pAddress, uint32_t fFlags,
191 PRTGCINTPTR poffDisp, PRTDBGMOD phMod)
192{
193 return NULL;
194}
195VMMR3DECL(int) DBGFR3AsSymbolByName(PUVM pUVM, RTDBGAS hDbgAs, const char *pszSymbol, PRTDBGSYMBOL pSymbol, PRTDBGMOD phMod)
196{
197 return VERR_INTERNAL_ERROR;
198}
199VMMR3DECL(int) DBGFR3AsLinkModule(PUVM pUVM, RTDBGAS hDbgAs, RTDBGMOD hMod, PCDBGFADDRESS pModAddress, RTDBGSEGIDX iModSeg, uint32_t fFlags)
200{
201 return VERR_INTERNAL_ERROR;
202}
203VMMR3DECL(int) DBGFR3ModInMem(PUVM pUVM, PCDBGFADDRESS pImageAddr, uint32_t fFlags, const char *pszName, const char *pszFilename,
204 RTLDRARCH enmArch, uint32_t cbImage, PRTDBGMOD phDbgMod, PRTERRINFO pErrInfo)
205{
206 return VERR_INTERNAL_ERROR;
207}
208VMMR3DECL(int) DBGFR3MemScan(PUVM pUVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, RTGCUINTPTR cbRange, RTGCUINTPTR uAlign, const void *pabNeedle, size_t cbNeedle, PDBGFADDRESS pHitAddress)
209{
210 return VERR_INTERNAL_ERROR;
211}
212VMMR3DECL(int) DBGFR3MemRead(PUVM pUVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, void *pvBuf, size_t cbRead)
213{
214 return VERR_INTERNAL_ERROR;
215}
216VMMR3DECL(int) DBGFR3MemReadString(PUVM pUVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, char *pszBuf, size_t cchBuf)
217{
218 return VERR_INTERNAL_ERROR;
219}
220VMMR3DECL(int) DBGFR3MemWrite(PUVM pUVM, VMCPUID idCpu, PCDBGFADDRESS pAddress, const void *pvBuf, size_t cbRead)
221{
222 return VERR_INTERNAL_ERROR;
223}
224VMMDECL(int) DBGFR3PagingDumpEx(PUVM pUVM, VMCPUID idCpu, uint32_t fFlags, uint64_t cr3, uint64_t u64FirstAddr,
225 uint64_t u64LastAddr, uint32_t cMaxDepth, PCDBGFINFOHLP pHlp)
226{
227 return VERR_INTERNAL_ERROR;
228}
229VMMR3DECL(int) DBGFR3RegNmValidate(PUVM pUVM, VMCPUID idDefCpu, const char *pszReg)
230{
231 if ( !strcmp(pszReg, "ah")
232 || !strcmp(pszReg, "ax")
233 || !strcmp(pszReg, "eax")
234 || !strcmp(pszReg, "rax"))
235 return VINF_SUCCESS;
236 return VERR_DBGF_REGISTER_NOT_FOUND;
237}
238VMMR3DECL(const char *) DBGFR3RegCpuName(PUVM pUVM, DBGFREG enmReg, DBGFREGVALTYPE enmType)
239{
240 return NULL;
241}
242VMMR3DECL(int) DBGFR3RegCpuQueryU8( PUVM pUVM, VMCPUID idCpu, DBGFREG enmReg, uint8_t *pu8)
243{
244 return VERR_INTERNAL_ERROR;
245}
246VMMR3DECL(int) DBGFR3RegCpuQueryU16( PUVM pUVM, VMCPUID idCpu, DBGFREG enmReg, uint16_t *pu16)
247{
248 return VERR_INTERNAL_ERROR;
249}
250VMMR3DECL(int) DBGFR3RegCpuQueryU32( PUVM pUVM, VMCPUID idCpu, DBGFREG enmReg, uint32_t *pu32)
251{
252 return VERR_INTERNAL_ERROR;
253}
254VMMR3DECL(int) DBGFR3RegCpuQueryU64( PUVM pUVM, VMCPUID idCpu, DBGFREG enmReg, uint64_t *pu64)
255{
256 return VERR_INTERNAL_ERROR;
257}
258VMMR3DECL(int) DBGFR3RegCpuQueryXdtr(PUVM pUVM, VMCPUID idCpu, DBGFREG enmReg, uint64_t *pu64Base, uint16_t *pu16Limit)
259{
260 return VERR_INTERNAL_ERROR;
261}
262VMMR3DECL(int) DBGFR3RegNmQuery(PUVM pUVM, VMCPUID idDefCpu, const char *pszReg, PDBGFREGVAL pValue, PDBGFREGVALTYPE penmType)
263{
264 if (idDefCpu == 0 || idDefCpu == DBGFREG_HYPER_VMCPUID)
265 {
266 if (!strcmp(pszReg, "ah"))
267 {
268 pValue->u16 = 0xf0;
269 *penmType = DBGFREGVALTYPE_U8;
270 return VINF_SUCCESS;
271 }
272 if (!strcmp(pszReg, "ax"))
273 {
274 pValue->u16 = 0xbabe;
275 *penmType = DBGFREGVALTYPE_U16;
276 return VINF_SUCCESS;
277 }
278 if (!strcmp(pszReg, "eax"))
279 {
280 pValue->u32 = 0xcafebabe;
281 *penmType = DBGFREGVALTYPE_U32;
282 return VINF_SUCCESS;
283 }
284 if (!strcmp(pszReg, "rax"))
285 {
286 pValue->u64 = UINT64_C(0x00beef00feedface);
287 *penmType = DBGFREGVALTYPE_U32;
288 return VINF_SUCCESS;
289 }
290 }
291 return VERR_DBGF_REGISTER_NOT_FOUND;
292}
293VMMR3DECL(int) DBGFR3RegPrintf(PUVM pUVM, VMCPUID idCpu, char *pszBuf, size_t cbBuf, const char *pszFormat, ...)
294{
295 return VERR_INTERNAL_ERROR;
296}
297VMMDECL(ssize_t) DBGFR3RegFormatValue(char *pszBuf, size_t cbBuf, PCDBGFREGVAL pValue, DBGFREGVALTYPE enmType, bool fSpecial)
298{
299 return VERR_INTERNAL_ERROR;
300}
301VMMR3DECL(int) DBGFR3RegNmSet(PUVM pUVM, VMCPUID idDefCpu, const char *pszReg, PCDBGFREGVAL pValue, DBGFREGVALTYPE enmType)
302{
303 return VERR_INTERNAL_ERROR;
304}
305
306VMMR3DECL(PDBGFADDRESS) DBGFR3AddrFromPhys(PUVM pUVM, PDBGFADDRESS pAddress, RTGCPHYS PhysAddr)
307{
308 return NULL;
309}
310VMMR3DECL(int) DBGFR3AddrToHostPhys(PUVM pUVM, VMCPUID idCpu, PDBGFADDRESS pAddress, PRTHCPHYS pHCPhys)
311{
312 return VERR_INTERNAL_ERROR;
313}
314VMMR3DECL(int) DBGFR3AddrToVolatileR3Ptr(PUVM pUVM, VMCPUID idCpu, PDBGFADDRESS pAddress, bool fReadOnly, void **ppvR3Ptr)
315{
316 return VERR_INTERNAL_ERROR;
317}
318
319VMMR3DECL(int) DBGFR3OSRegister(PUVM pUVM, PCDBGFOSREG pReg)
320{
321 return VERR_INTERNAL_ERROR;
322}
323VMMR3DECL(int) DBGFR3OSDetect(PUVM pUVM, char *pszName, size_t cchName)
324{
325 return VERR_INTERNAL_ERROR;
326}
327VMMR3DECL(int) DBGFR3OSQueryNameAndVersion(PUVM pUVM, char *pszName, size_t cchName, char *pszVersion, size_t cchVersion)
328{
329 return VERR_INTERNAL_ERROR;
330}
331VMMR3DECL(void *) DBGFR3OSQueryInterface(PUVM pUVM, DBGFOSINTERFACE enmIf)
332{
333 return NULL;
334}
335
336VMMR3DECL(int) DBGFR3SelQueryInfo(PUVM pUVM, VMCPUID idCpu, RTSEL Sel, uint32_t fFlags, PDBGFSELINFO pSelInfo)
337{
338 return VERR_INTERNAL_ERROR;
339}
340
341VMMR3DECL(CPUMMODE) DBGFR3CpuGetMode(PUVM pUVM, VMCPUID idCpu)
342{
343 return CPUMMODE_INVALID;
344}
345VMMR3DECL(VMCPUID) DBGFR3CpuGetCount(PUVM pUVM)
346{
347 return 1;
348}
349VMMR3DECL(bool) DBGFR3CpuIsIn64BitCode(PUVM pUVM, VMCPUID idCpu)
350{
351 return false;
352}
353VMMR3DECL(bool) DBGFR3CpuIsInV86Code(PUVM pUVM, VMCPUID idCpu)
354{
355 return false;
356}
357
358VMMR3DECL(int) DBGFR3CoreWrite(PUVM pUVM, const char *pszFilename, bool fReplaceFile)
359{
360 return VERR_INTERNAL_ERROR;
361}
362
363VMMR3DECL(int) DBGFR3PlugInLoad(PUVM pUVM, const char *pszPlugIn, char *pszActual, size_t cbActual, PRTERRINFO pErrInfo)
364{
365 return VERR_INTERNAL_ERROR;
366}
367VMMR3DECL(int) DBGFR3PlugInUnload(PUVM pUVM, const char *pszName)
368{
369 return VERR_INTERNAL_ERROR;
370}
371VMMR3DECL(void) DBGFR3PlugInLoadAll(PUVM pUVM)
372{
373}
374VMMR3DECL(int) DBGFR3TypeRegister( PUVM pUVM, uint32_t cTypes, PCDBGFTYPEREG paTypes)
375{
376 return VERR_INTERNAL_ERROR;
377}
378VMMR3DECL(int) DBGFR3TypeDeregister(PUVM pUVM, const char *pszType)
379{
380 return VERR_INTERNAL_ERROR;
381}
382VMMR3DECL(int) DBGFR3TypeQueryReg( PUVM pUVM, const char *pszType, PCDBGFTYPEREG *ppTypeReg)
383{
384 return VERR_INTERNAL_ERROR;
385}
386VMMR3DECL(int) DBGFR3TypeQuerySize( PUVM pUVM, const char *pszType, size_t *pcbType)
387{
388 return VERR_INTERNAL_ERROR;
389}
390VMMR3DECL(int) DBGFR3TypeSetSize( PUVM pUVM, const char *pszType, size_t cbType)
391{
392 return VERR_INTERNAL_ERROR;
393}
394VMMR3DECL(int) DBGFR3TypeDumpEx( PUVM pUVM, const char *pszType, uint32_t fFlags,
395 uint32_t cLvlMax, PFNDBGFR3TYPEDUMP pfnDump, void *pvUser)
396{
397 return VERR_INTERNAL_ERROR;
398}
399VMMR3DECL(int) DBGFR3TypeQueryValByType(PUVM pUVM, PCDBGFADDRESS pAddress, const char *pszType,
400 PDBGFTYPEVAL *ppVal)
401{
402 return VERR_INTERNAL_ERROR;
403}
404VMMR3DECL(void) DBGFR3TypeValFree(PDBGFTYPEVAL pVal)
405{
406}
407VMMR3DECL(int) DBGFR3TypeValDumpEx(PUVM pUVM, PCDBGFADDRESS pAddress, const char *pszType, uint32_t fFlags,
408 uint32_t cLvlMax, FNDBGFR3TYPEVALDUMP pfnDump, void *pvUser)
409{
410 return VERR_INTERNAL_ERROR;
411}
412
413VMMR3DECL(int) DBGFR3FlowCreate(PUVM pUVM, VMCPUID idCpu, PDBGFADDRESS pAddressStart, uint32_t cbDisasmMax,
414 uint32_t fFlagsFlow, uint32_t fFlagsDisasm, PDBGFFLOW phFlow)
415{
416 return VERR_INTERNAL_ERROR;
417}
418VMMR3DECL(uint32_t) DBGFR3FlowRetain(DBGFFLOW hFlow)
419{
420 return 0;
421}
422VMMR3DECL(uint32_t) DBGFR3FlowRelease(DBGFFLOW hFlow)
423{
424 return 0;
425}
426VMMR3DECL(int) DBGFR3FlowQueryStartBb(DBGFFLOW hFlow, PDBGFFLOWBB phFlowBb)
427{
428 return VERR_INTERNAL_ERROR;
429}
430VMMR3DECL(int) DBGFR3FlowQueryBbByAddress(DBGFFLOW hFlow, PDBGFADDRESS pAddr, PDBGFFLOWBB phFlowBb)
431{
432 return VERR_INTERNAL_ERROR;
433}
434VMMR3DECL(int) DBGFR3FlowQueryBranchTblByAddress(DBGFFLOW hFlow, PDBGFADDRESS pAddr, PDBGFFLOWBRANCHTBL phFlowBranchTbl)
435{
436 return VERR_INTERNAL_ERROR;
437}
438VMMR3DECL(uint32_t) DBGFR3FlowGetBbCount(DBGFFLOW hFlow)
439{
440 return 0;
441}
442VMMR3DECL(uint32_t) DBGFR3FlowGetBranchTblCount(DBGFFLOW hFlow)
443{
444 return 0;
445}
446VMMR3DECL(uint32_t) DBGFR3FlowBbRetain(DBGFFLOWBB hFlowBb)
447{
448 return 0;
449}
450VMMR3DECL(uint32_t) DBGFR3FlowBbRelease(DBGFFLOWBB hFlowBb)
451{
452 return 0;
453}
454VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetStartAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrStart)
455{
456 return NULL;
457}
458VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetEndAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrEnd)
459{
460 return NULL;
461}
462VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetBranchAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrTarget)
463{
464 return NULL;
465}
466VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBbGetFollowingAddress(DBGFFLOWBB hFlowBb, PDBGFADDRESS pAddrFollow)
467{
468 return NULL;
469}
470VMMR3DECL(DBGFFLOWBBENDTYPE) DBGFR3FlowBbGetType(DBGFFLOWBB hFlowBb)
471{
472 return DBGFFLOWBBENDTYPE_INVALID;
473}
474VMMR3DECL(uint32_t) DBGFR3FlowBbGetInstrCount(DBGFFLOWBB hFlowBb)
475{
476 return 0;
477}
478VMMR3DECL(uint32_t) DBGFR3FlowBbGetFlags(DBGFFLOWBB hFlowBb)
479{
480 return 0;
481}
482VMMR3DECL(int) DBGFR3FlowBbQueryBranchTbl(DBGFFLOWBB hFlowBb, PDBGFFLOWBRANCHTBL phBranchTbl)
483{
484 return VERR_INTERNAL_ERROR;
485}
486VMMR3DECL(int) DBGFR3FlowBbQueryError(DBGFFLOWBB hFlowBb, const char **ppszErr)
487{
488 return VERR_INTERNAL_ERROR;
489}
490VMMR3DECL(int) DBGFR3FlowBbQueryInstr(DBGFFLOWBB hFlowBb, uint32_t idxInstr, PDBGFADDRESS pAddrInstr,
491 uint32_t *pcbInstr, const char **ppszInstr)
492{
493 return VERR_INTERNAL_ERROR;
494}
495VMMR3DECL(int) DBGFR3FlowBbQuerySuccessors(DBGFFLOWBB hFlowBb, PDBGFFLOWBB phFlowBbFollow,
496 PDBGFFLOWBB phFlowBbTarget)
497{
498 return VERR_INTERNAL_ERROR;
499}
500VMMR3DECL(uint32_t) DBGFR3FlowBbGetRefBbCount(DBGFFLOWBB hFlowBb)
501{
502 return 0;
503}
504VMMR3DECL(int) DBGFR3FlowBbGetRefBb(DBGFFLOWBB hFlowBb, PDBGFFLOWBB pahFlowBbRef, uint32_t cRef)
505{
506 return VERR_INTERNAL_ERROR;
507}
508VMMR3DECL(uint32_t) DBGFR3FlowBranchTblRetain(DBGFFLOWBRANCHTBL hFlowBranchTbl)
509{
510 return 0;
511}
512VMMR3DECL(uint32_t) DBGFR3FlowBranchTblRelease(DBGFFLOWBRANCHTBL hFlowBranchTbl)
513{
514 return 0;
515}
516VMMR3DECL(uint32_t) DBGFR3FlowBranchTblGetSlots(DBGFFLOWBRANCHTBL hFlowBranchTbl)
517{
518 return 0;
519}
520VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBranchTblGetStartAddress(DBGFFLOWBRANCHTBL hFlowBranchTbl, PDBGFADDRESS pAddrStart)
521{
522 return NULL;
523}
524VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBranchTblGetAddrAtSlot(DBGFFLOWBRANCHTBL hFlowBranchTbl, uint32_t idxSlot, PDBGFADDRESS pAddrSlot)
525{
526 return NULL;
527}
528VMMR3DECL(int) DBGFR3FlowBranchTblQueryAddresses(DBGFFLOWBRANCHTBL hFlowBranchTbl, PDBGFADDRESS paAddrs, uint32_t cAddrs)
529{
530 return VERR_INTERNAL_ERROR;
531}
532VMMR3DECL(int) DBGFR3FlowItCreate(DBGFFLOW hFlow, DBGFFLOWITORDER enmOrder, PDBGFFLOWIT phFlowIt)
533{
534 return VERR_INTERNAL_ERROR;
535}
536VMMR3DECL(void) DBGFR3FlowItDestroy(DBGFFLOWIT hFlowIt)
537{
538}
539VMMR3DECL(DBGFFLOWBB) DBGFR3FlowItNext(DBGFFLOWIT hFlowIt)
540{
541 return NULL;
542}
543VMMR3DECL(int) DBGFR3FlowItReset(DBGFFLOWIT hFlowIt)
544{
545 return VERR_INTERNAL_ERROR;
546}
547VMMR3DECL(int) DBGFR3FlowBranchTblItCreate(DBGFFLOW hFlow, DBGFFLOWITORDER enmOrder, PDBGFFLOWBRANCHTBLIT phFlowBranchTblIt)
548{
549 return VERR_INTERNAL_ERROR;
550}
551VMMR3DECL(void) DBGFR3FlowBranchTblItDestroy(DBGFFLOWBRANCHTBLIT hFlowBranchTblIt)
552{
553}
554VMMR3DECL(DBGFFLOWBRANCHTBL) DBGFR3FlowBranchTblItNext(DBGFFLOWBRANCHTBLIT hFlowBranchTblIt)
555{
556 return NULL;
557}
558VMMR3DECL(int) DBGFR3FlowBranchTblItReset(DBGFFLOWBRANCHTBLIT hFlowBranchTblIt)
559{
560 return VERR_INTERNAL_ERROR;
561}
562
563VMMR3DECL(int) DBGFR3FormatBugCheck(PUVM pUVM, char *pszDetails, size_t cbDetails,
564 uint64_t uP0, uint64_t uP1, uint64_t uP2, uint64_t uP3, uint64_t uP4)
565{
566 pszDetails[0] = '\0';
567 return VERR_INTERNAL_ERROR;
568}
569
570VMMR3DECL(PDBGFADDRESS) DBGFR3AddrAdd(PDBGFADDRESS pAddress, RTGCUINTPTR uAddend)
571{
572 RT_NOREF(uAddend);
573 return pAddress;
574}
575
576#include <VBox/vmm/cfgm.h>
577VMMR3DECL(int) CFGMR3ValidateConfig(PCFGMNODE pNode, const char *pszNode,
578 const char *pszValidValues, const char *pszValidNodes,
579 const char *pszWho, uint32_t uInstance)
580{
581 return VINF_SUCCESS;
582}
583
584VMMR3DECL(PCFGMNODE) CFGMR3GetRootU(PUVM pUVM)
585{
586 return NULL;
587}
588
589VMMR3DECL(PCFGMNODE) CFGMR3GetChild(PCFGMNODE pNode, const char *pszPath)
590{
591 return NULL;
592}
593
594VMMR3DECL(int) CFGMR3QueryString(PCFGMNODE pNode, const char *pszName, char *pszString, size_t cchString)
595{
596 *pszString = '\0';
597 return VINF_SUCCESS;
598}
599
600VMMR3DECL(int) CFGMR3QueryStringDef(PCFGMNODE pNode, const char *pszName, char *pszString, size_t cchString, const char *pszDef)
601{
602 *pszString = '\0';
603 return VINF_SUCCESS;
604}
605
606
607
608//////////////////////////////////////////////////////////////////////////
609// The rest should eventually be replaced by DBGF calls and eliminated. //
610/////////////////////////////////////////////////////////////////////////
611
612
613#include <VBox/vmm/cpum.h>
614
615VMMDECL(uint64_t) CPUMGetGuestCR3(PCVMCPU pVCpu)
616{
617 return 0;
618}
619
620VMMDECL(uint64_t) CPUMGetGuestCR4(PCVMCPU pVCpu)
621{
622 return 0;
623}
624
625VMMDECL(RTSEL) CPUMGetGuestCS(PCVMCPU pVCpu)
626{
627 return 0;
628}
629
630VMMDECL(PCCPUMCTXCORE) CPUMGetGuestCtxCore(PVMCPU pVCpu)
631{
632 return NULL;
633}
634
635VMMDECL(uint32_t) CPUMGetGuestEIP(PCVMCPU pVCpu)
636{
637 return 0;
638}
639
640VMMDECL(uint64_t) CPUMGetGuestRIP(PCVMCPU pVCpu)
641{
642 return 0;
643}
644
645VMMDECL(RTGCPTR) CPUMGetGuestIDTR(PCVMCPU pVCpu, uint16_t *pcbLimit)
646{
647 return 0;
648}
649
650VMMDECL(CPUMMODE) CPUMGetGuestMode(PVMCPU pVCpu)
651{
652 return CPUMMODE_INVALID;
653}
654
655VMMDECL(PCPUMCTX) CPUMQueryGuestCtxPtr(PVMCPU pVCpu)
656{
657 return NULL;
658}
659
660VMMDECL(bool) CPUMIsGuestIn64BitCode(PVMCPU pVCpu)
661{
662 return false;
663}
664
665VMMDECL(uint32_t) CPUMGetGuestEFlags(PCVMCPU pVCpu)
666{
667 return 2;
668}
669
670#include <VBox/vmm/hm.h>
671VMMR3DECL(bool) HMR3IsEnabled(PUVM pUVM)
672{
673 return true;
674}
675
676
677#include <VBox/vmm/nem.h>
678VMMR3DECL(bool) NEMR3IsEnabled(PUVM pUVM)
679{
680 return true;
681}
682
683
684#include <VBox/vmm/pgm.h>
685
686VMMDECL(RTHCPHYS) PGMGetHyperCR3(PVMCPU pVCpu)
687{
688 return 0;
689}
690
691VMMDECL(PGMMODE) PGMGetShadowMode(PVMCPU pVCpu)
692{
693 return PGMMODE_INVALID;
694}
695
696VMMR3DECL(int) PGMR3DbgR3Ptr2GCPhys(PUVM pUVM, RTR3PTR R3Ptr, PRTGCPHYS pGCPhys)
697{
698 return VERR_INTERNAL_ERROR;
699}
700
701VMMR3DECL(int) PGMR3DbgR3Ptr2HCPhys(PUVM pUVM, RTR3PTR R3Ptr, PRTHCPHYS pHCPhys)
702{
703 return VERR_INTERNAL_ERROR;
704}
705VMMR3DECL(int) PGMR3DbgHCPhys2GCPhys(PUVM pUVM, RTHCPHYS HCPhys, PRTGCPHYS pGCPhys)
706{
707 return VERR_INTERNAL_ERROR;
708}
709
710
711#include <VBox/vmm/vmm.h>
712
713VMMR3DECL(PVMCPU) VMMR3GetCpuByIdU(PUVM pUVM, RTCPUID idCpu)
714{
715 return NULL;
716}
717
718
719VMMR3DECL(PVM) VMR3GetVM(PUVM pUVM)
720{
721 return NULL;
722}
723
724VMMR3DECL(VMSTATE) VMR3GetStateU(PUVM pUVM)
725{
726 return VMSTATE_DESTROYING;
727}
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