X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRts.h;h=b5737d4d0e4d83cdafcfd5854e06ba5cab1137ab;hb=2da67673279cf015ccc84270f6fd7935f64261a6;hp=df8cb469009d5a521b1edb3f8004aa318d75104b;hpb=a8b5e840ebb42522992749eb9afd1a9ba870d234;p=ghc-hetmet.git diff --git a/includes/Rts.h b/includes/Rts.h index df8cb46..b5737d4 100644 --- a/includes/Rts.h +++ b/includes/Rts.h @@ -18,6 +18,9 @@ extern "C" { #endif #include "Stg.h" +// ToDo: move RtsExternal stuff elsewhere +#include "RtsExternal.h" + // Turn off inlining when debugging - it obfuscates things #ifdef DEBUG # undef STATIC_INLINE @@ -35,6 +38,12 @@ extern "C" { #define FLEXIBLE_ARRAY 0 #endif +#if __GNUC__ >= 3 +#define ATTRIBUTE_ALIGNED(n) __attribute__((aligned(n))) +#else +#define ATTRIBUTE_ALIGNED(n) /*nothing*/ +#endif + /* Fix for mingw stat problem (done here so it's early enough) */ #ifdef mingw32_HOST_OS #define __MSVCRT__ 1 @@ -42,13 +51,17 @@ extern "C" { /* Needed to get the macro version of errno on some OSs, and also to get prototypes for the _r versions of C library functions. */ +#ifndef _REENTRANT #define _REENTRANT 1 +#endif /* * We often want to know the size of something in units of an * StgWord... (rounded up, of course!) */ -#define sizeofW(t) ((sizeof(t)+sizeof(W_)-1)/sizeof(W_)) +#define ROUNDUP_BYTES_TO_WDS(n) (((n) + sizeof(W_) - 1) / sizeof(W_)) + +#define sizeofW(t) ROUNDUP_BYTES_TO_WDS(sizeof(t)) /* * It's nice to be able to grep for casts @@ -159,28 +172,15 @@ TAG_CLOSURE(StgWord tag,StgClosure * p) /* Info tables, closures & code fragments defined in the RTS */ #include "StgMiscClosures.h" -/* Simulated-parallel information */ -#include "GranSim.h" - /* Parallel information */ -#include "Parallel.h" #include "OSThreads.h" -#include "SMP.h" - -/* GNU mp library */ -#if defined(HAVE_FRAMEWORK_GMP) -#include -#else -#include "gmp.h" -#endif +#include "SMPClosureOps.h" +#include "SpinLock.h" /* Macros for STG/C code */ #include "Block.h" #include "ClosureMacros.h" - /* Ticky-ticky counters */ -#include "TickyCounters.h" - /* Runtime-system hooks */ #include "Hooks.h" #include "RtsMessages.h" @@ -200,8 +200,8 @@ DLL_IMPORT_RTS extern char *prog_name; extern void stackOverflow(void); -extern void __decodeDouble (MP_INT *man, I_ *_exp, StgDouble dbl); -extern void __decodeFloat (MP_INT *man, I_ *_exp, StgFloat flt); +extern void __decodeDouble_2Int (I_ *man_sign, W_ *man_high, W_ *man_low, I_ *exp, StgDouble dbl); +extern void __decodeFloat_Int (I_ *man, I_ *exp, StgFloat flt); #if defined(WANT_DOTNET_SUPPORT) #include "DNInvoke.h" @@ -273,18 +273,6 @@ TICK_VAR(2) #define DEBUG_ONLY(s) doNothing() #endif -#if defined(GRAN) && defined(DEBUG) -#define IF_GRAN_DEBUG(c,s) if (RtsFlags.GranFlags.Debug.c) { s; } -#else -#define IF_GRAN_DEBUG(c,s) doNothing() -#endif - -#if defined(PAR) && defined(DEBUG) -#define IF_PAR_DEBUG(c,s) if (RtsFlags.ParFlags.Debug.c) { s; } -#else -#define IF_PAR_DEBUG(c,s) doNothing() -#endif - /* ----------------------------------------------------------------------------- Useful macros and inline functions -------------------------------------------------------------------------- */