VirtualBox

Changeset 19450 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
May 6, 2009 6:08:58 PM (16 years ago)
Author:
vboxsync
Message:

VMMAll: updated SIPI sketch.

File:
1 edited

Legend:

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

    r19445 r19450  
    8080 * @param   pVM         The VM to operate on.
    8181 * @param   idCpu       Virtual CPU to perform SIPI on
    82  * @param   iVector     SIPI vector
    83  */
    84 DECLCALLBACK(int) vmmR3SendSipi(PVM pVM, VMCPUID idCpu, int iVector)
     82 * @param   uVector     SIPI vector
     83 */
     84DECLCALLBACK(int) vmmR3SendSipi(PVM pVM, VMCPUID idCpu, uint32_t uVector)
    8585{
    8686    PVMCPU pVCpu = VMMGetCpuById(pVM, idCpu);
     
    8888
    8989    /** @todo what are we supposed to do if the processor is already running? */
     90    CPUMSetGuestCS(pVCpu, uVector * 0x100);
     91    CPUMSetGuestEIP(pVCpu, 0);
     92
     93# if 1 /* If we keep the EMSTATE_WAIT_SIPI method, then move this to EM.cpp. */
     94    return VINF_EM_RESCHEDULE;
     95# else /* And if we go the VMCPU::enmState way it can stay here. */
    9096    VMCPU_ASSERT_STATE(pVCpu, VMCPUSTATE_STOPPED);
    9197    VMCPU_SET_STATE(pVCpu, VMCPUSTATE_STARTED);
    92 
    93     CPUMSetGuestCS(pVCpu, iVector * 0x100);
    94     CPUMSetGuestEIP(pVCpu, 0);
    9598    return VINF_SUCCESS;
     99# endif
    96100}
    97101#endif /* IN_RING3 */
     
    113117    PVMREQ pReq;
    114118    int rc = VMR3ReqCallU(pVM->pUVM, idCpu, &pReq, RT_INDEFINITE_WAIT, 0,
    115                           (PFNRT)vmmR3SendSipi, 3, pVM, idCpu, iVector);
     119                          (PFNRT)vmmR3SendSipi, 3, pVM, idCpu, (uint32_t)iVector);
    116120    AssertRC(rc);
    117121    VMR3ReqFree(pReq);
Note: See TracChangeset for help on using the changeset viewer.

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