X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=includes%2FConstants.h;h=e0949cbd1f8fae6857e4419a559ccfddc8838d56;hp=4f3c35b7448fe814facc595cc6bc31f47ec45212;hb=842e9d6628a27cf1f420d53f6a5901935dc50c54;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/includes/Constants.h b/includes/Constants.h index 4f3c35b..e0949cb 100644 --- a/includes/Constants.h +++ b/includes/Constants.h @@ -76,16 +76,6 @@ #define MAX_LONG_REG 1 /* ----------------------------------------------------------------------------- - * Maximum number of constructors in a data type for direct-returns. - * - * NB. There are various places that assume the value of this - * constant, such as the polymorphic return frames for updates - * (stg_upd_frame_info) and catch frames (stg_catch_frame_info). - * -------------------------------------------------------------------------- */ - -#define MAX_VECTORED_RTN 8 - -/* ----------------------------------------------------------------------------- Semi-Tagging constants Old Comments about this stuff: @@ -128,6 +118,13 @@ #define RESERVED_STACK_WORDS 21 /* ----------------------------------------------------------------------------- + The limit on the size of the stack check performed when we enter an + AP_STACK, in words. See raiseAsync() and bug #1466. + -------------------------------------------------------------------------- */ + +#define AP_STACK_SPLIM 1024 + +/* ----------------------------------------------------------------------------- Storage manager constants -------------------------------------------------------------------------- */ @@ -230,6 +227,39 @@ #define ThreadBlocked 4 #define ThreadFinished 5 +/* + * Flags for the tso->flags field. + * + * The TSO_DIRTY flag indicates that this TSO's stack should be + * scanned during garbage collection. The link field of a TSO is + * always scanned, so we don't have to dirty a TSO just for linking + * it on a different list. + * + * TSO_DIRTY is set by + * - schedule(), just before running a thread, + * - raiseAsync(), because it modifies a thread's stack + * - resumeThread(), just before running the thread again + * and unset by the garbage collector (only). + */ +#define TSO_DIRTY 1 + +/* + * TSO_LOCKED is set when a TSO is locked to a particular Capability. + */ +#define TSO_LOCKED 2 + +/* + * TSO_BLOCKEX: the TSO is blocking exceptions + * + * TSO_INTERRUPTIBLE: the TSO can be interrupted if it blocks + * interruptibly (eg. with BlockedOnMVar). + * + * TSO_STOPPED_ON_BREAKPOINT: the thread is currently stopped in a breakpoint + */ +#define TSO_BLOCKEX 4 +#define TSO_INTERRUPTIBLE 8 +#define TSO_STOPPED_ON_BREAKPOINT 16 + /* ----------------------------------------------------------------------------- RET_DYN stack frames -------------------------------------------------------------------------- */ @@ -249,10 +279,4 @@ #error RESERVED_STACK_WORDS may be wrong! #endif -/* ----------------------------------------------------------------------------- - How often our context-switch timer ticks - -------------------------------------------------------------------------- */ - -#define TICK_FREQUENCY 50 /* ticks per second */ - #endif /* CONSTANTS_H */