Index: trunk/src/VBox/VMM/PDMDevMiscHlp.cpp
===================================================================
--- trunk/src/VBox/VMM/PDMDevMiscHlp.cpp	(revision 19467)
+++ trunk/src/VBox/VMM/PDMDevMiscHlp.cpp	(revision 19468)
@@ -232,16 +232,9 @@
 
 /** @copydoc PDMAPICHLPR3::pfnSendSipi */
-static DECLCALLBACK(void) pdmR3ApicHlp_SendSipi(PPDMDEVINS pDevIns, VMCPUID idCpu, int iVector) /** @todo why signed? */
-{
-    PDMDEV_ASSERT_DEVINS(pDevIns);
-    VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3);
-
-    PVM pVM = pDevIns->Internal.s.pVMR3;
-    PVMCPU pCpu = VMMGetCpuById(pVM, idCpu);
-    CPUMSetGuestCS(pCpu, iVector * 0x100);
-    CPUMSetGuestEIP(pCpu, 0);
-    /** @todo: how do I unhalt VCPU?
-     *  bird: See VMMSendSipi. */
-
+static DECLCALLBACK(void) pdmR3ApicHlp_SendSipi(PPDMDEVINS pDevIns, VMCPUID idCpu, uint32_t uVector)
+{
+    PDMDEV_ASSERT_DEVINS(pDevIns);
+    VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3);
+    VMMR3SendSipi(pDevIns->Internal.s.pVMR3, idCpu, uVector);
 }
 
Index: trunk/src/VBox/VMM/VMMAll/VMMAll.cpp
===================================================================
--- trunk/src/VBox/VMM/VMMAll/VMMAll.cpp	(revision 19467)
+++ trunk/src/VBox/VMM/VMMAll/VMMAll.cpp	(revision 19468)
@@ -99,6 +99,4 @@
 # endif
 }
-#endif /* IN_RING3 */
-
 
 /**
@@ -108,20 +106,17 @@
  * @param   pVM         The VM to operate on.
  * @param   idCpu       Virtual CPU to perform SIPI on
- * @param   iVector     SIPI vector
- */
-VMMDECL(void) VMMSendSipi(PVM pVM, VMCPUID idCpu, int iVector) /** @todo why is iVector signed? */
+ * @param   uVector     SIPI vector
+ */
+VMMR3DECL(void) VMMR3SendSipi(PVM pVM, VMCPUID idCpu,  uint32_t uVector)
 {
     AssertReturnVoid(idCpu < pVM->cCPUs);
 
-#ifdef IN_RING3
     PVMREQ pReq;
     int rc = VMR3ReqCallU(pVM->pUVM, idCpu, &pReq, RT_INDEFINITE_WAIT, 0,
-                          (PFNRT)vmmR3SendSipi, 3, pVM, idCpu, (uint32_t)iVector);
+                          (PFNRT)vmmR3SendSipi, 3, pVM, idCpu, uVector);
     AssertRC(rc);
     VMR3ReqFree(pReq);
-#else
-    AssertMsgFailed(("has to be done in ring-3, fix the code.\n"));
-#endif
-}
+}
+#endif /* IN_RING3 */
 
 
Index: trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp
===================================================================
--- trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp	(revision 19467)
+++ trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp	(revision 19468)
@@ -92,5 +92,4 @@
 static DECLCALLBACK(void) pdmRCApicHlp_Unlock(PPDMDEVINS pDevIns);
 static DECLCALLBACK(VMCPUID) pdmRCApicHlp_GetCpuId(PPDMDEVINS pDevIns);
-static DECLCALLBACK(void) pdmRCApicHlp_SendSipi(PPDMDEVINS pDevIns, VMCPUID idCpu, int iVector);
 /** @} */
 
@@ -168,5 +167,4 @@
     pdmRCApicHlp_Unlock,
     pdmRCApicHlp_GetCpuId,
-    pdmRCApicHlp_SendSipi,
     PDM_APICHLPRC_VERSION
 };
@@ -490,15 +488,4 @@
     return VMMGetCpuId(pDevIns->Internal.s.pVMRC);
 }
-
-
-/** @copydoc PDMAPICHLPRC::pfnSendSipi */
-static DECLCALLBACK(void) pdmRCApicHlp_SendSipi(PPDMDEVINS pDevIns, VMCPUID idCpu, int iVector)
-{
-    /* we shall never send a SIPI in raw mode */
-    AssertFailed();
-}
-
-
-
 
 /** @copydoc PDMIOAPICHLPRC::pfnApicBusDeliver */
Index: trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp
===================================================================
--- trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp	(revision 19467)
+++ trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp	(revision 19468)
@@ -94,5 +94,4 @@
 static DECLCALLBACK(void) pdmR0ApicHlp_Unlock(PPDMDEVINS pDevIns);
 static DECLCALLBACK(VMCPUID) pdmR0ApicHlp_GetCpuId(PPDMDEVINS pDevIns);
-static DECLCALLBACK(void) pdmR0ApicHlp_SendSipi(PPDMDEVINS pDevIns, VMCPUID idCpu, int iVector);
 /** @} */
 
@@ -171,5 +170,4 @@
     pdmR0ApicHlp_Unlock,
     pdmR0ApicHlp_GetCpuId,
-    pdmR0ApicHlp_SendSipi,
     PDM_APICHLPR0_VERSION
 };
@@ -504,16 +502,4 @@
     return VMMGetCpuId(pDevIns->Internal.s.pVMR0);
 }
-
-
-/** @copydoc PDMAPICHLPR0::pfnSendSipi */
-static DECLCALLBACK(void) pdmR0ApicHlp_SendSipi(PPDMDEVINS pDevIns, VMCPUID idCpu, int iVector)
-{
-    PDMDEV_ASSERT_DEVINS(pDevIns);
-    return VMMSendSipi(pDevIns->Internal.s.pVMR0, idCpu, iVector);
-}
-
-
-
-
 
 /** @copydoc PDMIOAPICHLPR0::pfnApicBusDeliver */
