From: sof Date: Tue, 14 Mar 2000 01:43:27 +0000 (+0000) Subject: [project @ 2000-03-14 01:43:27 by sof] X-Git-Tag: Approximately_9120_patches~4994 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=cfab6b90ceae929552f3da817786b27a1ebc946e;p=ghc-hetmet.git [project @ 2000-03-14 01:43:27 by sof] * 'inlined' subset of the MM protos needed to compile this module, i.e., don't require whoever does a 'make' in ghc/rts/ to have extended their * right Win32 proto for handle_tick() --- diff --git a/ghc/rts/Itimer.c b/ghc/rts/Itimer.c index 1bdd2bb..de95f1b 100644 --- a/ghc/rts/Itimer.c +++ b/ghc/rts/Itimer.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Itimer.c,v 1.9 2000/02/28 10:57:44 simonmar Exp $ + * $Id: Itimer.c,v 1.10 2000/03/14 01:43:27 sof Exp $ * * (c) The GHC Team, 1995-1999 * @@ -45,7 +45,12 @@ lnat total_ticks = 0; rtsBool do_prof_ticks = rtsFalse; -static void handle_tick(int unused STG_UNUSED); +static +void +#if defined(mingw32_TARGET_OS) || (defined(cygwin32_TARGET_OS) && !defined(HAVE_SETITIMER)) +CALLBACK +#endif +handle_tick(int unused STG_UNUSED); /* ----------------------------------------------------------------------------- Tick handler @@ -58,7 +63,11 @@ static void handle_tick(int unused STG_UNUSED); signal handler. -------------------------------------------------------------------------- */ -static void +static +void +#if defined(mingw32_TARGET_OS) || (defined(cygwin32_TARGET_OS) && !defined(HAVE_SETITIMER)) +CALLBACK +#endif handle_tick(int unused STG_UNUSED) { total_ticks++; @@ -87,6 +96,22 @@ handle_tick(int unused STG_UNUSED) #if defined(mingw32_TARGET_OS) || (defined(cygwin32_TARGET_OS) && !defined(HAVE_SETITIMER)) +/* + * 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