Changeset 45091 in vbox for trunk/src/VBox/VMM/VMMRZ
- Timestamp:
- Mar 19, 2013 4:01:32 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 84380
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMRZ/VMMRZ.cpp
r44529 r45091 86 86 pVM->vmm.s.pfnRCToHost(VINF_VMM_CALL_HOST); 87 87 #else 88 if (pVCpu->vmm.s.pfnCallRing3CallbackR0) 89 pVCpu->vmm.s.pfnCallRing3CallbackR0(pVCpu, enmOperation, pVCpu->vmm.s.pvCallRing3CallbackUserR0); 88 90 int rc = vmmR0CallRing3LongJmp(&pVCpu->vmm.s.CallRing3JmpBufR0, VINF_VMM_CALL_HOST); 89 91 if (RT_FAILURE(rc)) … … 175 177 } 176 178 179 180 /** 181 * Sets the ring-0 callback before doing the ring-3 call. 182 * 183 * @param pVCpu Pointer to the VMCPU. 184 * @param pfnCallback Pointer to the callback. 185 * @param pvUser The user argument. 186 * 187 * @return VBox status code. 188 */ 189 VMMRZDECL(int) VMMRZCallRing3SetNotification(PVMCPU pVCpu, PFNVMMR0CALLRING3NOTIFICATION pfnCallback, void *pvUser) 190 { 191 AssertReturn(pVCpu, VERR_INVALID_POINTER); 192 AssertReturn(pfnCallback, VERR_INVALID_POINTER); 193 194 if (pVCpu->vmm.s.pfnCallRing3CallbackR0) 195 return VERR_ALREADY_EXISTS; 196 197 pVCpu->vmm.s.pfnCallRing3CallbackR0 = pfnCallback; 198 pVCpu->vmm.s.pvCallRing3CallbackUserR0 = pvUser; 199 return VINF_SUCCESS; 200 } 201 202 203 /** 204 * Removes the ring-0 callback. 205 * 206 * @param pVCpu Pointer to the VMCPU. 207 */ 208 VMMRZDECL(void) VMMRZCallRing3RemoveNotification(PVMCPU pVCpu) 209 { 210 pVCpu->vmm.s.pfnCallRing3CallbackR0 = NULL; 211 } 212
Note:
See TracChangeset
for help on using the changeset viewer.