Lines Matching refs:pUVM

82  * @param   pUVM        The user mode VM handle.
84 int dbgfR3InfoInit(PUVM pUVM)
89 if (RTCritSectIsInitialized(&pUVM->dbgf.s.InfoCritSect))
95 int rc = RTCritSectInit(&pUVM->dbgf.s.InfoCritSect);
101 rc = DBGFR3InfoRegisterInternal(pUVM->pVM, "help", "List of info items.", dbgfR3InfoHelp);
112 * @param pUVM The user mode VM handle.
114 int dbgfR3InfoTerm(PUVM pUVM)
119 int rc = RTCritSectDelete(&pUVM->dbgf.s.InfoCritSect);
215 * @param pUVM The user mode VM handle.
221 static int dbgfR3InfoRegister(PUVM pUVM, const char *pszName, const char *pszDesc, uint32_t fFlags, PDBGFINFO *ppInfo)
236 PDBGFINFO pInfo = (PDBGFINFO)MMR3HeapAllocU(pUVM, MM_TAG_DBGF_INFO, RT_OFFSETOF(DBGFINFO, szName[cchName]));
247 if (!RTCritSectIsInitialized(&pUVM->dbgf.s.InfoCritSect))
248 rc = dbgfR3InfoInit(pUVM);
254 rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect);
258 for (pCur = pUVM->dbgf.s.pInfoFirst; pCur; pPrev = pCur, pCur = pCur->pNext)
265 pUVM->dbgf.s.pInfoFirst = pInfo;
304 int rc = dbgfR3InfoRegister(pVM->pUVM, pszName, pszDesc, 0, &pInfo);
310 RTCritSectLeave(&pVM->pUVM->dbgf.s.InfoCritSect);
342 int rc = dbgfR3InfoRegister(pVM->pUVM, pszName, pszDesc, 0, &pInfo);
348 RTCritSectLeave(&pVM->pUVM->dbgf.s.InfoCritSect);
395 int rc = dbgfR3InfoRegister(pVM->pUVM, pszName, pszDesc, fFlags, &pInfo);
400 RTCritSectLeave(&pVM->pUVM->dbgf.s.InfoCritSect);
411 * @param pUVM The user mode VM handle.
417 VMMR3DECL(int) DBGFR3InfoRegisterExternal(PUVM pUVM, const char *pszName, const char *pszDesc,
427 UVM_ASSERT_VALID_EXT_RETURN(pUVM, VERR_INVALID_VM_HANDLE);
433 int rc = dbgfR3InfoRegister(pUVM, pszName, pszDesc, 0, &pInfo);
439 RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
464 PUVM pUVM = pVM->pUVM;
469 int rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect); AssertRC(rc);
472 PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst;
487 pUVM->dbgf.s.pInfoFirst = pInfo->pNext;
505 pUVM->dbgf.s.pInfoFirst = pInfo->pNext;
511 int rc2 = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
536 PUVM pUVM = pVM->pUVM;
541 int rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect); AssertRC(rc);
544 PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst;
559 pUVM->dbgf.s.pInfoFirst = pInfo->pNext;
577 pUVM->dbgf.s.pInfoFirst = pInfo->pNext;
583 int rc2 = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
595 * @param pUVM Pointer to the VM.
599 static int dbgfR3InfoDeregister(PUVM pUVM, const char *pszName, DBGFINFOTYPE enmType)
610 int rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect);
614 PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst;
623 pUVM->dbgf.s.pInfoFirst = pInfo->pNext;
628 int rc2 = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
646 return dbgfR3InfoDeregister(pVM->pUVM, pszName, DBGFINFOTYPE_INT);
654 * @param pUVM The user mode VM handle.
657 VMMR3DECL(int) DBGFR3InfoDeregisterExternal(PUVM pUVM, const char *pszName)
660 UVM_ASSERT_VALID_EXT_RETURN(pUVM, VERR_INVALID_VM_HANDLE);
661 return dbgfR3InfoDeregister(pUVM, pszName, DBGFINFOTYPE_EXT);
669 * @param pUVM The user mode VM handle.
676 static DECLCALLBACK(int) dbgfR3Info(PUVM pUVM, VMCPUID idCpu, const char *pszName, const char *pszArgs, PCDBGFINFOHLP pHlp)
696 int rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect);
698 PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst;
711 rc = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
718 rc = VMR3ReqCallVoidWaitU(pUVM, idCpu, (PFNRT)Info.u.Dev.pfnHandler, 3, Info.u.Dev.pDevIns, pHlp, pszArgs);
725 rc = VMR3ReqCallVoidWaitU(pUVM, idCpu, (PFNRT)Info.u.Drv.pfnHandler, 3, Info.u.Drv.pDrvIns, pHlp, pszArgs);
731 if (RT_VALID_PTR(pUVM->pVM))
734 rc = VMR3ReqCallVoidWaitU(pUVM, idCpu, (PFNRT)Info.u.Int.pfnHandler, 3, pUVM->pVM, pHlp, pszArgs);
736 Info.u.Int.pfnHandler(pUVM->pVM, pHlp, pszArgs);
744 rc = VMR3ReqCallVoidWaitU(pUVM, idCpu, (PFNRT)Info.u.Ext.pfnHandler, 3, Info.u.Ext.pvUser, pHlp, pszArgs);
755 rc = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
766 * @param pUVM The user mode VM handle.
771 VMMR3DECL(int) DBGFR3Info(PUVM pUVM, const char *pszName, const char *pszArgs, PCDBGFINFOHLP pHlp)
773 UVM_ASSERT_VALID_EXT_RETURN(pUVM, VERR_INVALID_VM_HANDLE);
774 return dbgfR3Info(pUVM, VMCPUID_ANY, pszName, pszArgs, pHlp);
782 * @param pUVM The user mode VM handle.
789 VMMR3DECL(int) DBGFR3InfoEx(PUVM pUVM, VMCPUID idCpu, const char *pszName, const char *pszArgs, PCDBGFINFOHLP pHlp)
791 UVM_ASSERT_VALID_EXT_RETURN(pUVM, VERR_INVALID_VM_HANDLE);
793 return dbgfR3Info(pUVM, VMCPUID_ANY, pszName, pszArgs, pHlp);
794 return VMR3ReqPriorityCallWaitU(pUVM, idCpu,
795 (PFNRT)dbgfR3Info, 5, pUVM, idCpu, pszName, pszArgs, pHlp);
803 * @param pUVM The user mode VM handle.
807 VMMR3DECL(int) DBGFR3InfoLogRel(PUVM pUVM, const char *pszName, const char *pszArgs)
809 return DBGFR3Info(pUVM, pszName, pszArgs, &g_dbgfR3InfoLogRelHlp);
817 * @param pUVM The user mode VM handle.
821 VMMR3DECL(int) DBGFR3InfoStdErr(PUVM pUVM, const char *pszName, const char *pszArgs)
823 return DBGFR3Info(pUVM, pszName, pszArgs, &g_dbgfR3InfoStdErrHlp);
849 PUVM pUVM = pVM->pUVM;
869 int rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect);
872 for (PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst; pInfo; pInfo = pInfo->pNext)
883 rc = VMR3ReqCallVoidWaitU(pUVM, VMCPUID_ANY, (PFNRT)pInfo->u.Dev.pfnHandler, 3,
891 rc = VMR3ReqCallVoidWaitU(pUVM, VMCPUID_ANY, (PFNRT)pInfo->u.Drv.pfnHandler, 3,
899 rc = VMR3ReqCallVoidWaitU(pUVM, VMCPUID_ANY, (PFNRT)pInfo->u.Int.pfnHandler, 3, pVM, pHlp, pszArgs);
906 rc = VMR3ReqCallVoidWaitU(pUVM, VMCPUID_ANY, (PFNRT)pInfo->u.Ext.pfnHandler, 3,
917 int rc2 = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
928 * @param pUVM The user mode VM handle.
932 VMMR3DECL(int) DBGFR3InfoEnum(PUVM pUVM, PFNDBGFINFOENUM pfnCallback, void *pvUser)
944 UVM_ASSERT_VALID_EXT_RETURN(pUVM, VERR_INVALID_VM_HANDLE);
949 int rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect);
953 for (PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst; RT_SUCCESS(rc) && pInfo; pInfo = pInfo->pNext)
954 rc = pfnCallback(pUVM, pInfo->szName, pInfo->pszDesc, pvUser);
959 int rc2 = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);
981 PUVM pUVM = pVM->pUVM;
982 int rc = RTCritSectEnter(&pUVM->dbgf.s.InfoCritSect);
987 for (PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst; pInfo; pInfo = pInfo->pNext)
1001 for (PDBGFINFO pInfo = pUVM->dbgf.s.pInfoFirst; pInfo; pInfo = pInfo->pNext)
1009 rc = RTCritSectLeave(&pUVM->dbgf.s.InfoCritSect);