X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=includes%2FClosures.h;fp=includes%2FClosures.h;h=ef5fa4e8079d63254f4ff54934bd57bc5b264d99;hp=15955fdcbaf0f13c8ddcbd4b0af8404816678f63;hb=dd56e9ab4544e83d27532a8d9058140bfe81825c;hpb=cfe2fd2a36f43c1f998bb5e7c0cec15480ed3f96 diff --git a/includes/Closures.h b/includes/Closures.h index 15955fd..ef5fa4e 100644 --- a/includes/Closures.h +++ b/includes/Closures.h @@ -27,14 +27,6 @@ typedef struct { } StgProfHeader; /* ----------------------------------------------------------------------------- - The GranSim header - -------------------------------------------------------------------------- */ - -typedef struct { - StgWord procs; /* bitmask indicating on which PEs this closure resides */ -} StgGranHeader; - -/* ----------------------------------------------------------------------------- The SMP header A thunk has a padding word to take the updated value. This is so @@ -63,9 +55,6 @@ typedef struct { #ifdef PROFILING StgProfHeader prof; #endif -#ifdef GRAN - StgGranHeader gran; -#endif } StgHeader; typedef struct { @@ -73,9 +62,6 @@ typedef struct { #ifdef PROFILING StgProfHeader prof; #endif -#ifdef GRAN - StgGranHeader gran; -#endif StgSMPThunkHeader smp; } StgThunkHeader; @@ -427,67 +413,4 @@ typedef struct { StgClosure *alt_code; } StgCatchRetryFrame; -#if defined(PAR) || defined(GRAN) -/* - StgBlockingQueueElement is a ``collective type'' representing the types - of closures that can be found on a blocking queue: StgTSO, StgRBHSave, - StgBlockedFetch. (StgRBHSave can only appear at the end of a blocking - queue). Logically, this is a union type, but defining another struct - with a common layout is easier to handle in the code. - Note that in the standard setup only StgTSOs can be on a blocking queue. - This is one of the main reasons for slightly different code in files - such as Schedule.c. -*/ -typedef struct StgBlockingQueueElement_ { - StgHeader header; - struct StgBlockingQueueElement_ *link; /* next elem in BQ */ - struct StgClosure_ *payload[FLEXIBLE_ARRAY];/* contents of the closure */ -} StgBlockingQueueElement; - -/* only difference to std code is type of the elem in the BQ */ -typedef struct StgBlockingQueue_ { - StgHeader header; - struct StgBlockingQueueElement_ *blocking_queue; /* start of the BQ */ -} StgBlockingQueue; - -/* this closure is hanging at the end of a blocking queue in (see RBH.c) */ -typedef struct StgRBHSave_ { - StgHeader header; - StgClosure *payload[FLEXIBLE_ARRAY]; /* 2 words ripped out of the guts of the */ -} StgRBHSave; /* closure holding the blocking queue */ - -typedef struct StgRBH_ { - StgHeader header; - struct StgBlockingQueueElement_ *blocking_queue; /* start of the BQ */ -} StgRBH; - -#endif - -#if defined(PAR) -/* global indirections aka FETCH_ME closures */ -typedef struct StgFetchMe_ { - StgHeader header; - globalAddr *ga; /* ptr to unique id for a closure */ -} StgFetchMe; - -/* same contents as an ordinary StgBlockingQueue */ -typedef struct StgFetchMeBlockingQueue_ { - StgHeader header; - struct StgBlockingQueueElement_ *blocking_queue; /* start of the BQ */ -} StgFetchMeBlockingQueue; - -/* This is an entry in a blocking queue. It indicates a fetch request from a - TSO on another PE demanding the value of this closur. Note that a - StgBlockedFetch can only occur in a BQ. Once the node is evaluated and - updated with the result, the result will be sent back (the PE is encoded - in the globalAddr) and the StgBlockedFetch closure will be nuked. -*/ -typedef struct StgBlockedFetch_ { - StgHeader header; - struct StgBlockingQueueElement_ *link; /* next elem in the BQ */ - StgClosure *node; /* node to fetch */ - globalAddr ga; /* where to send the result to */ -} StgBlockedFetch; /* NB: not just a ptr to a GA */ -#endif - #endif /* CLOSURES_H */