Index: /trunk/src/VBox/VMM/VMM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMM.cpp	(revision 19475)
+++ /trunk/src/VBox/VMM/VMM.cpp	(revision 19476)
@@ -1147,4 +1147,75 @@
 }
 
+/**
+ * On VCPU worker for VMMSendSipi.
+ *
+ * @param   pVM         The VM to operate on.
+ * @param   idCpu       Virtual CPU to perform SIPI on
+ * @param   uVector     SIPI vector
+ */
+DECLCALLBACK(int) vmmR3SendSipi(PVM pVM, VMCPUID idCpu, uint32_t uVector)
+{
+    PVMCPU pVCpu = VMMGetCpuById(pVM, idCpu);
+    VMCPU_ASSERT_EMT(pVCpu);
+
+    /** @todo what are we supposed to do if the processor is already running? */
+    CPUMSetGuestCS(pVCpu, uVector * 0x100);
+    CPUMSetGuestEIP(pVCpu, 0);
+
+# if 1 /* If we keep the EMSTATE_WAIT_SIPI method, then move this to EM.cpp. */
+    return VINF_EM_RESCHEDULE;
+# else /* And if we go the VMCPU::enmState way it can stay here. */
+    VMCPU_ASSERT_STATE(pVCpu, VMCPUSTATE_STOPPED);
+    VMCPU_SET_STATE(pVCpu, VMCPUSTATE_STARTED);
+    return VINF_SUCCESS;
+# endif
+}
+
+DECLCALLBACK(int) vmmR3SendInitIpi(PVM pVM, VMCPUID idCpu)
+{
+    PVMCPU pVCpu = VMMGetCpuById(pVM, idCpu);
+    VMCPU_ASSERT_EMT(pVCpu);
+
+    /** @todo: reset CPU and halt till SIPI */
+
+    return VINF_SUCCESS;
+}
+
+/**
+ * Sends SIPI to the virtual CPU by setting CS:EIP into vector-dependent state
+ * and unhalting processor
+ *
+ * @param   pVM         The VM to operate on.
+ * @param   idCpu       Virtual CPU to perform SIPI on
+ * @param   uVector     SIPI vector
+ */
+VMMR3DECL(void) VMMR3SendSipi(PVM pVM, VMCPUID idCpu,  uint32_t uVector)
+{
+    AssertReturnVoid(idCpu < pVM->cCPUs);
+
+    PVMREQ pReq;
+    int rc = VMR3ReqCallU(pVM->pUVM, idCpu, &pReq, RT_INDEFINITE_WAIT, 0,
+                          (PFNRT)vmmR3SendSipi, 3, pVM, idCpu, uVector);
+    AssertRC(rc);
+    VMR3ReqFree(pReq);
+}
+
+/**
+ * Sends init IPI to the virtual CPU.
+ *
+ * @param   pVM         The VM to operate on.
+ * @param   idCpu       Virtual CPU to perform int IPI on
+ */
+VMMR3DECL(void) VMMR3SendInitIpi(PVM pVM, VMCPUID idCpu)
+{
+    AssertReturnVoid(idCpu < pVM->cCPUs);
+
+    PVMREQ pReq;
+    int rc = VMR3ReqCallU(pVM->pUVM, idCpu, &pReq, RT_INDEFINITE_WAIT, 0,
+                          (PFNRT)vmmR3SendInitIpi, 2, pVM, idCpu);
+    AssertRC(rc);
+    VMR3ReqFree(pReq);
+}
+
 
 /**
Index: /trunk/src/VBox/VMM/VMMAll/VMMAll.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/VMMAll.cpp	(revision 19475)
+++ /trunk/src/VBox/VMM/VMMAll/VMMAll.cpp	(revision 19476)
@@ -72,78 +72,4 @@
 #endif
 }
-
-
-#ifdef IN_RING3
-/**
- * On VCPU worker for VMMSendSipi.
- *
- * @param   pVM         The VM to operate on.
- * @param   idCpu       Virtual CPU to perform SIPI on
- * @param   uVector     SIPI vector
- */
-DECLCALLBACK(int) vmmR3SendSipi(PVM pVM, VMCPUID idCpu, uint32_t uVector)
-{
-    PVMCPU pVCpu = VMMGetCpuById(pVM, idCpu);
-    VMCPU_ASSERT_EMT(pVCpu);
-
-    /** @todo what are we supposed to do if the processor is already running? */
-    CPUMSetGuestCS(pVCpu, uVector * 0x100);
-    CPUMSetGuestEIP(pVCpu, 0);
-
-# if 1 /* If we keep the EMSTATE_WAIT_SIPI method, then move this to EM.cpp. */
-    return VINF_EM_RESCHEDULE;
-# else /* And if we go the VMCPU::enmState way it can stay here. */
-    VMCPU_ASSERT_STATE(pVCpu, VMCPUSTATE_STOPPED);
-    VMCPU_SET_STATE(pVCpu, VMCPUSTATE_STARTED);
-    return VINF_SUCCESS;
-# endif
-}
-
-DECLCALLBACK(int) vmmR3SendInitIpi(PVM pVM, VMCPUID idCpu)
-{
-    PVMCPU pVCpu = VMMGetCpuById(pVM, idCpu);
-    VMCPU_ASSERT_EMT(pVCpu);
-
-    /** @todo: reset CPU and halt till SIPI */
-
-    return VINF_SUCCESS;
-}
-
-/**
- * Sends SIPI to the virtual CPU by setting CS:EIP into vector-dependent state
- * and unhalting processor
- *
- * @param   pVM         The VM to operate on.
- * @param   idCpu       Virtual CPU to perform SIPI on
- * @param   uVector     SIPI vector
- */
-VMMR3DECL(void) VMMR3SendSipi(PVM pVM, VMCPUID idCpu,  uint32_t uVector)
-{
-    AssertReturnVoid(idCpu < pVM->cCPUs);
-
-    PVMREQ pReq;
-    int rc = VMR3ReqCallU(pVM->pUVM, idCpu, &pReq, RT_INDEFINITE_WAIT, 0,
-                          (PFNRT)vmmR3SendSipi, 3, pVM, idCpu, uVector);
-    AssertRC(rc);
-    VMR3ReqFree(pReq);
-}
-
-/**
- * Sends init IPI to the virtual CPU.
- *
- * @param   pVM         The VM to operate on.
- * @param   idCpu       Virtual CPU to perform int IPI on
- */
-VMMR3DECL(void) VMMR3SendInitIpi(PVM pVM, VMCPUID idCpu)
-{
-    AssertReturnVoid(idCpu < pVM->cCPUs);
-
-    PVMREQ pReq;
-    int rc = VMR3ReqCallU(pVM->pUVM, idCpu, &pReq, RT_INDEFINITE_WAIT, 0,
-                          (PFNRT)vmmR3SendInitIpi, 2, pVM, idCpu);
-    AssertRC(rc);
-    VMR3ReqFree(pReq);
-}
-#endif /* IN_RING3 */
 
 
