-/*
- * Sigh - to avoid requiring anyone that wants to build ghc to have
- * to augment the Win32 header files that comes with cygwinb20.1,
- * include the missing MM API decls here inline.
- *
- * ToDo: check and remove these once the next version of cygwin is
- * released.
- */
-#define TIMERR_NOERROR 0
-#define TIMERR_NOCANDO 97
-#define TIME_PERIODIC 1
-
-typedef UINT MMRESULT;
-typedef void CALLBACK (*TIMECALLBACK) (UINT, UINT, DWORD, DWORD, DWORD);
-typedef TIMECALLBACK *LPTIMECALLBACK;
-MMRESULT STDCALL timeSetEvent(UINT, UINT, LPTIMECALLBACK, DWORD, UINT);
-/*
- vtalrm_handler is assigned and set up in Signals.c
-
- vtalrm_id (defined in Signals.c) holds
- the system id for the current timer (used to
- later block/kill it.)
-*/
-extern nat vtalrm_id;
-TIMECALLBACK *vtalrm_cback;
-
-nat
-initialize_virtual_timer(nat ms)
+static LPTIMECALLBACK vtalrm_cback;
+static unsigned int vtalrm_id = 0;
+static unsigned int period = -1;
+
+int
+startVirtTimer(nat ms)