VirtualBox

Changeset 45091 in vbox for trunk/src/VBox/VMM/VMMRZ


Ignore:
Timestamp:
Mar 19, 2013 4:01:32 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
84380
Message:

VMM/VMMR0: HM old-code segregation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMRZ/VMMRZ.cpp

    r44529 r45091  
    8686    pVM->vmm.s.pfnRCToHost(VINF_VMM_CALL_HOST);
    8787#else
     88    if (pVCpu->vmm.s.pfnCallRing3CallbackR0)
     89        pVCpu->vmm.s.pfnCallRing3CallbackR0(pVCpu, enmOperation, pVCpu->vmm.s.pvCallRing3CallbackUserR0);
    8890    int rc = vmmR0CallRing3LongJmp(&pVCpu->vmm.s.CallRing3JmpBufR0, VINF_VMM_CALL_HOST);
    8991    if (RT_FAILURE(rc))
     
    175177}
    176178
     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 */
     189VMMRZDECL(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 */
     208VMMRZDECL(void) VMMRZCallRing3RemoveNotification(PVMCPU pVCpu)
     209{
     210    pVCpu->vmm.s.pfnCallRing3CallbackR0 = NULL;
     211}
     212
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette