Index: /trunk/include/VBox/vmm/tm.h
===================================================================
--- /trunk/include/VBox/vmm/tm.h	(revision 87762)
+++ /trunk/include/VBox/vmm/tm.h	(revision 87763)
@@ -279,5 +279,4 @@
 VMM_INT_DECL(int)       TMR3TimerCreateDriver(PVM pVM, PPDMDRVINS pDrvIns, TMCLOCK enmClock, PFNTMTIMERDRV pfnCallback, void *pvUser, uint32_t fFlags, const char *pszDesc, PPTMTIMERR3 ppTimer);
 VMMR3DECL(int)          TMR3TimerCreateInternal(PVM pVM, TMCLOCK enmClock, PFNTMTIMERINT pfnCallback, void *pvUser, const char *pszDesc, PPTMTIMERR3 ppTimer);
-VMMR3DECL(PTMTIMERR3)   TMR3TimerCreateExternal(PVM pVM, TMCLOCK enmClock, PFNTMTIMEREXT pfnCallback, void *pvUser, const char *pszDesc);
 VMMR3DECL(int)          TMR3TimerDestroy(PTMTIMER pTimer);
 VMM_INT_DECL(int)       TMR3TimerDestroyDevice(PVM pVM, PPDMDEVINS pDevIns);
Index: /trunk/src/VBox/VMM/VMMR3/TM.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/TM.cpp	(revision 87762)
+++ /trunk/src/VBox/VMM/VMMR3/TM.cpp	(revision 87763)
@@ -1745,36 +1745,4 @@
 }
 
-/**
- * Creates an external timer.
- *
- * @returns Timer handle on success.
- * @returns NULL on failure.
- * @param   pVM             The cross context VM structure.
- * @param   enmClock        The clock to use on this timer.
- * @param   pfnCallback     Callback function.
- * @param   pvUser          User argument.
- * @param   pszDesc         Pointer to description string which must stay around
- *                          until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()).
- */
-VMMR3DECL(PTMTIMERR3) TMR3TimerCreateExternal(PVM pVM, TMCLOCK enmClock,
-                                              PFNTMTIMEREXT pfnCallback, void *pvUser, const char *pszDesc)
-{
-    /*
-     * Allocate and init stuff.
-     */
-    PTMTIMERR3 pTimer;
-    int rc = tmr3TimerCreate(pVM, enmClock, 0 /*fFlags*/, pszDesc, &pTimer);
-    if (RT_SUCCESS(rc))
-    {
-        pTimer->enmType             = TMTIMERTYPE_EXTERNAL;
-        pTimer->u.External.pfnTimer = pfnCallback;
-        pTimer->pvUser              = pvUser;
-        Log(("TM: Created external timer %p clock %d callback %p '%s'\n", pTimer, enmClock, pfnCallback, pszDesc));
-        return pTimer;
-    }
-
-    return NULL;
-}
-
 
 /**
@@ -2316,5 +2284,4 @@
                 case TMTIMERTYPE_DRV:       pTimer->u.Drv.pfnTimer(pTimer->u.Drv.pDrvIns, pTimer, pTimer->pvUser); break;
                 case TMTIMERTYPE_INTERNAL:  pTimer->u.Internal.pfnTimer(pVM, pTimer, pTimer->pvUser); break;
-                case TMTIMERTYPE_EXTERNAL:  pTimer->u.External.pfnTimer(pTimer->pvUser); break;
                 default:
                     AssertMsgFailed(("Invalid timer type %d (%s)\n", pTimer->enmType, pTimer->pszDesc));
@@ -2501,5 +2468,4 @@
             case TMTIMERTYPE_DRV:       pTimer->u.Drv.pfnTimer(pTimer->u.Drv.pDrvIns, pTimer, pTimer->pvUser); break;
             case TMTIMERTYPE_INTERNAL:  pTimer->u.Internal.pfnTimer(pVM, pTimer, pTimer->pvUser); break;
-            case TMTIMERTYPE_EXTERNAL:  pTimer->u.External.pfnTimer(pTimer->pvUser); break;
             default:
                 AssertMsgFailed(("Invalid timer type %d (%s)\n", pTimer->enmType, pTimer->pszDesc));
Index: /trunk/src/VBox/VMM/include/TMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/TMInternal.h	(revision 87762)
+++ /trunk/src/VBox/VMM/include/TMInternal.h	(revision 87763)
@@ -57,7 +57,5 @@
     TMTIMERTYPE_DRV,
     /** Internal timer . */
-    TMTIMERTYPE_INTERNAL,
-    /** External timer. */
-    TMTIMERTYPE_EXTERNAL
+    TMTIMERTYPE_INTERNAL
 } TMTIMERTYPE;
 
@@ -164,11 +162,4 @@
             R3PTRTYPE(PFNTMTIMERINT)    pfnTimer;
         } Internal;
-
-        /** TMTIMERTYPE_EXTERNAL. */
-        struct
-        {
-            /** Callback. */
-            R3PTRTYPE(PFNTMTIMEREXT)    pfnTimer;
-        } External;
     } u;
 
