X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=includes%2Frts%2Fstorage%2FClosures.h;h=d7498e28821d6c56260b244ba90afd3ecbaf8493;hb=7408b39235bccdcde48df2a73337ff976fbc09b7;hp=6e06e57f3cf9bd0c537c394d054904d0492bc1ef;hpb=a2a67cd520b9841114d69a87a423dabcb3b4368e;p=ghc-hetmet.git diff --git a/includes/rts/storage/Closures.h b/includes/rts/storage/Closures.h index 6e06e57..d7498e2 100644 --- a/includes/rts/storage/Closures.h +++ b/includes/rts/storage/Closures.h @@ -136,7 +136,9 @@ typedef struct { typedef struct { StgHeader header; StgWord ptrs; + StgWord size; // ptrs plus card table StgClosure *payload[FLEXIBLE_ARRAY]; + // see also: StgMutArrPtrs macros in ClosureMacros.h } StgMutArrPtrs; typedef struct { @@ -388,10 +390,10 @@ typedef struct StgInvariantCheckQueue_ { struct StgTRecHeader_ { StgHeader header; - TRecState state; struct StgTRecHeader_ *enclosing_trec; StgTRecChunk *current_chunk; StgInvariantCheckQueue *invariants_to_check; + TRecState state; }; typedef struct { @@ -414,4 +416,27 @@ typedef struct { StgClosure *alt_code; } StgCatchRetryFrame; +/* ---------------------------------------------------------------------------- + Messages + ------------------------------------------------------------------------- */ + +typedef struct Message_ { + StgHeader header; + struct Message_ *link; +} Message; + +typedef struct MessageWakeup_ { + StgHeader header; + Message *link; + StgTSO *tso; +} MessageWakeup; + +typedef struct MessageThrowTo_ { + StgHeader header; + Message *link; + StgTSO *source; + StgTSO *target; + StgClosure *exception; +} MessageThrowTo; + #endif /* RTS_STORAGE_CLOSURES_H */