Changeset 91920 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Oct 21, 2021 6:45:26 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 147725
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp
r91909 r91920 963 963 964 964 965 /** @interface_method_impl{PDMDEVHLPR3,pfnPhysIsGCPhysNormal} */ 966 static DECLCALLBACK(bool) pdmR3DevHlp_PhysIsGCPhysNormal(PPDMDEVINS pDevIns, RTGCPHYS GCPhys) 967 { 968 PDMDEV_ASSERT_DEVINS(pDevIns); 969 LogFlow(("pdmR3DevHlp_PhysIsGCPhysNormal: caller='%s'/%d: GCPhys=%RGp\n", 970 pDevIns->pReg->szName, pDevIns->iInstance, GCPhys)); 971 972 bool fNormal = PGMPhysIsGCPhysNormal(pDevIns->Internal.s.pVMR3, GCPhys); 973 974 Log(("pdmR3DevHlp_PhysIsGCPhysNormal: caller='%s'/%d: returns %RTbool\n", pDevIns->pReg->szName, pDevIns->iInstance, fNormal)); 975 return fNormal; 976 } 977 978 965 979 /** @interface_method_impl{PDMDEVHLPR3,pfnCpuGetGuestMicroarch} */ 966 980 static DECLCALLBACK(CPUMMICROARCH) pdmR3DevHlp_CpuGetGuestMicroarch(PPDMDEVINS pDevIns) … … 1201 1215 PDMDEV_ASSERT_DEVINS(pDevIns); 1202 1216 int rc = VMSetRuntimeErrorV(pDevIns->Internal.s.pVMR3, fFlags, pszErrorId, pszFormat, va); 1217 return rc; 1218 } 1219 1220 1221 /** @interface_method_impl{PDMDEVHLPR3,pfnVMWaitForDeviceReady} */ 1222 static DECLCALLBACK(int) pdmR3DevHlp_VMWaitForDeviceReady(PPDMDEVINS pDevIns, VMCPUID idCpu) 1223 { 1224 PDMDEV_ASSERT_DEVINS(pDevIns); 1225 LogFlow(("pdmR3DevHlp_VMWaitForDeviceReady: caller='%s'/%d: idCpu=%u\n", pDevIns->pReg->szName, pDevIns->iInstance, idCpu)); 1226 1227 int rc = VMR3WaitForDeviceReady(pDevIns->Internal.s.pVMR3, idCpu); 1228 1229 LogFlow(("pdmR3DevHlp_VMWaitForDeviceReady: caller='%s'/%d: returns %Rrc\n", 1230 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 1231 return rc; 1232 } 1233 1234 1235 /** @interface_method_impl{PDMDEVHLPR3,pfnVMNotifyCpuDeviceReady} */ 1236 static DECLCALLBACK(int) pdmR3DevHlp_VMNotifyCpuDeviceReady(PPDMDEVINS pDevIns, VMCPUID idCpu) 1237 { 1238 PDMDEV_ASSERT_DEVINS(pDevIns); 1239 LogFlow(("pdmR3DevHlp_VMNotifyCpuDeviceReady: caller='%s'/%d: idCpu=%u\n", pDevIns->pReg->szName, pDevIns->iInstance, idCpu)); 1240 1241 int rc = VMR3NotifyCpuDeviceReady(pDevIns->Internal.s.pVMR3, idCpu); 1242 1243 LogFlow(("pdmR3DevHlp_VMNotifyCpuDeviceReady: caller='%s'/%d: returns %Rrc\n", 1244 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 1245 return rc; 1246 } 1247 1248 1249 /** @interface_method_impl{PDMDEVHLPR3,pfnVMReqCallNoWaitV} */ 1250 static DECLCALLBACK(int) pdmR3DevHlp_VMReqCallNoWaitV(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, va_list Args) 1251 { 1252 PDMDEV_ASSERT_DEVINS(pDevIns); 1253 LogFlow(("pdmR3DevHlp_VMReqCallNoWaitV: caller='%s'/%d: idDstCpu=%u pfnFunction=%p cArgs=%u\n", 1254 pDevIns->pReg->szName, pDevIns->iInstance, idDstCpu, pfnFunction, cArgs)); 1255 1256 int rc = VMR3ReqCallVU(pDevIns->Internal.s.pVMR3->pUVM, idDstCpu, NULL, 0, VMREQFLAGS_VBOX_STATUS | VMREQFLAGS_NO_WAIT, 1257 pfnFunction, cArgs, Args); 1258 1259 LogFlow(("pdmR3DevHlp_VMReqCallNoWaitV: caller='%s'/%d: returns %Rrc\n", 1260 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 1261 return rc; 1262 } 1263 1264 1265 /** @interface_method_impl{PDMDEVHLPR3,pfnVMReqPriorityCallWaitV} */ 1266 static DECLCALLBACK(int) pdmR3DevHlp_VMReqPriorityCallWaitV(PPDMDEVINS pDevIns, VMCPUID idDstCpu, PFNRT pfnFunction, unsigned cArgs, va_list Args) 1267 { 1268 PDMDEV_ASSERT_DEVINS(pDevIns); 1269 LogFlow(("pdmR3DevHlp_VMReqCallNoWaitV: caller='%s'/%d: idDstCpu=%u pfnFunction=%p cArgs=%u\n", 1270 pDevIns->pReg->szName, pDevIns->iInstance, idDstCpu, pfnFunction, cArgs)); 1271 1272 PVMREQ pReq; 1273 int rc = VMR3ReqCallVU(pDevIns->Internal.s.pVMR3->pUVM, idDstCpu, &pReq, RT_INDEFINITE_WAIT, VMREQFLAGS_VBOX_STATUS | VMREQFLAGS_PRIORITY, 1274 pfnFunction, cArgs, Args); 1275 if (RT_SUCCESS(rc)) 1276 rc = pReq->iStatus; 1277 VMR3ReqFree(pReq); 1278 1279 LogFlow(("pdmR3DevHlp_VMReqCallNoWaitV: caller='%s'/%d: returns %Rrc\n", 1280 pDevIns->pReg->szName, pDevIns->iInstance, rc)); 1203 1281 return rc; 1204 1282 } … … 4272 4350 LogFlow(("pdmR3DevHlp_GetCpuId: caller='%s'/%d: returns void - *pEax=%#x *pEbx=%#x *pEcx=%#x *pEdx=%#x\n", 4273 4351 pDevIns->pReg->szName, pDevIns->iInstance, *pEax, *pEbx, *pEcx, *pEdx)); 4352 } 4353 4354 4355 /** @interface_method_impl{PDMDEVHLPR3,pfnVMMRegisterPatchMemory} */ 4356 static DECLCALLBACK(int) pdmR3DevHlp_VMMRegisterPatchMemory(PPDMDEVINS pDevIns, RTGCPTR GCPtrPatchMem, uint32_t cbPatchMem) 4357 { 4358 PDMDEV_ASSERT_DEVINS(pDevIns); RT_NOREF(pDevIns); 4359 4360 LogFlow(("pdmR3DevHlp_VMMRegisterPatchMemory: caller='%s'/%d: GCPtrPatchMem=%RGv cbPatchMem=%RU32\n", 4361 pDevIns->pReg->szName, pDevIns->iInstance, GCPtrPatchMem, cbPatchMem)); 4362 4363 int rc = VMMR3RegisterPatchMemory(pDevIns->Internal.s.pVMR3, GCPtrPatchMem, cbPatchMem); 4364 4365 LogFlow(("pdmR3DevHlp_VMMRegisterPatchMemory: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc)); 4366 return rc; 4367 } 4368 4369 4370 /** @interface_method_impl{PDMDEVHLPR3,pfnVMMDeregisterPatchMemory} */ 4371 static DECLCALLBACK(int) pdmR3DevHlp_VMMDeregisterPatchMemory(PPDMDEVINS pDevIns, RTGCPTR GCPtrPatchMem, uint32_t cbPatchMem) 4372 { 4373 PDMDEV_ASSERT_DEVINS(pDevIns); RT_NOREF(pDevIns); 4374 4375 LogFlow(("pdmR3DevHlp_VMMDeregisterPatchMemory: caller='%s'/%d: GCPtrPatchMem=%RGv cbPatchMem=%RU32\n", 4376 pDevIns->pReg->szName, pDevIns->iInstance, GCPtrPatchMem, cbPatchMem)); 4377 4378 int rc = VMMR3DeregisterPatchMemory(pDevIns->Internal.s.pVMR3, GCPtrPatchMem, cbPatchMem); 4379 4380 LogFlow(("pdmR3DevHlp_VMMDeregisterPatchMemory: caller='%s'/%d: returns %Rrc\n", pDevIns->pReg->szName, pDevIns->iInstance, rc)); 4381 return rc; 4274 4382 } 4275 4383 … … 4475 4583 pdmR3DevHlp_PhysWriteGCVirt, 4476 4584 pdmR3DevHlp_PhysGCPtr2GCPhys, 4585 pdmR3DevHlp_PhysIsGCPhysNormal, 4477 4586 pdmR3DevHlp_MMHeapAlloc, 4478 4587 pdmR3DevHlp_MMHeapAllocZ, … … 4486 4595 pdmR3DevHlp_VMSetErrorV, 4487 4596 pdmR3DevHlp_VMSetRuntimeErrorV, 4597 pdmR3DevHlp_VMWaitForDeviceReady, 4598 pdmR3DevHlp_VMNotifyCpuDeviceReady, 4599 pdmR3DevHlp_VMReqCallNoWaitV, 4600 pdmR3DevHlp_VMReqPriorityCallWaitV, 4488 4601 pdmR3DevHlp_DBGFStopV, 4489 4602 pdmR3DevHlp_DBGFInfoRegister, … … 4633 4746 pdmR3DevHlp_QueryGenericUserObject, 4634 4747 pdmR3DevHlp_PGMHandlerPhysicalTypeRegister, 4748 pdmR3DevHlp_VMMRegisterPatchMemory, 4749 pdmR3DevHlp_VMMDeregisterPatchMemory, 4635 4750 PDM_DEVHLPR3_VERSION /* the end */ 4636 4751 }; … … 4838 4953 pdmR3DevHlp_PhysWriteGCVirt, 4839 4954 pdmR3DevHlp_PhysGCPtr2GCPhys, 4955 pdmR3DevHlp_PhysIsGCPhysNormal, 4840 4956 pdmR3DevHlp_MMHeapAlloc, 4841 4957 pdmR3DevHlp_MMHeapAllocZ, … … 4849 4965 pdmR3DevHlp_VMSetErrorV, 4850 4966 pdmR3DevHlp_VMSetRuntimeErrorV, 4967 pdmR3DevHlp_VMWaitForDeviceReady, 4968 pdmR3DevHlp_VMNotifyCpuDeviceReady, 4969 pdmR3DevHlp_VMReqCallNoWaitV, 4970 pdmR3DevHlp_VMReqPriorityCallWaitV, 4851 4971 pdmR3DevHlp_DBGFStopV, 4852 4972 pdmR3DevHlp_DBGFInfoRegister, … … 4996 5116 pdmR3DevHlp_QueryGenericUserObject, 4997 5117 pdmR3DevHlp_PGMHandlerPhysicalTypeRegister, 5118 pdmR3DevHlp_VMMRegisterPatchMemory, 5119 pdmR3DevHlp_VMMDeregisterPatchMemory, 4998 5120 PDM_DEVHLPR3_VERSION /* the end */ 4999 5121 }; … … 5152 5274 PDMDEV_ASSERT_DEVINS(pDevIns); 5153 5275 RT_NOREF(enmKind, pfnHandlerR3, pszHandlerR0, pszPfHandlerR0, pszHandlerRC, pszPfHandlerRC, pszDesc, phType); 5276 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5277 pDevIns->pReg->szName, pDevIns->iInstance)); 5278 return VERR_ACCESS_DENIED; 5279 } 5280 5281 5282 /** @interface_method_impl{PDMDEVHLPR3,pfnVMMRegisterPatchMemory} */ 5283 static DECLCALLBACK(int) pdmR3DevHlp_Untrusted_VMMRegisterPatchMemory(PPDMDEVINS pDevIns, RTGCPTR GCPtrPatchMem, uint32_t cbPatchMem) 5284 { 5285 PDMDEV_ASSERT_DEVINS(pDevIns); 5286 RT_NOREF(GCPtrPatchMem, cbPatchMem); 5287 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5288 pDevIns->pReg->szName, pDevIns->iInstance)); 5289 return VERR_ACCESS_DENIED; 5290 } 5291 5292 5293 /** @interface_method_impl{PDMDEVHLPR3,pfnVMMDeregisterPatchMemory} */ 5294 static DECLCALLBACK(int) pdmR3DevHlp_Untrusted_VMMDeregisterPatchMemory(PPDMDEVINS pDevIns, RTGCPTR GCPtrPatchMem, uint32_t cbPatchMem) 5295 { 5296 PDMDEV_ASSERT_DEVINS(pDevIns); 5297 RT_NOREF(GCPtrPatchMem, cbPatchMem); 5154 5298 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", 5155 5299 pDevIns->pReg->szName, pDevIns->iInstance)); … … 5358 5502 pdmR3DevHlp_PhysWriteGCVirt, 5359 5503 pdmR3DevHlp_PhysGCPtr2GCPhys, 5504 pdmR3DevHlp_PhysIsGCPhysNormal, 5360 5505 pdmR3DevHlp_MMHeapAlloc, 5361 5506 pdmR3DevHlp_MMHeapAllocZ, … … 5369 5514 pdmR3DevHlp_VMSetErrorV, 5370 5515 pdmR3DevHlp_VMSetRuntimeErrorV, 5516 pdmR3DevHlp_VMWaitForDeviceReady, 5517 pdmR3DevHlp_VMNotifyCpuDeviceReady, 5518 pdmR3DevHlp_VMReqCallNoWaitV, 5519 pdmR3DevHlp_VMReqPriorityCallWaitV, 5371 5520 pdmR3DevHlp_DBGFStopV, 5372 5521 pdmR3DevHlp_DBGFInfoRegister, … … 5516 5665 pdmR3DevHlp_Untrusted_QueryGenericUserObject, 5517 5666 pdmR3DevHlp_Untrusted_PGMHandlerPhysicalTypeRegister, 5667 pdmR3DevHlp_Untrusted_VMMRegisterPatchMemory, 5668 pdmR3DevHlp_Untrusted_VMMDeregisterPatchMemory, 5518 5669 PDM_DEVHLPR3_VERSION /* the end */ 5519 5670 };
Note:
See TracChangeset
for help on using the changeset viewer.