/* ----------------------------------------------------------------------------
- * $Id: Closures.h,v 1.27 2001/08/29 17:24:25 qrczak Exp $
+ * $Id: Closures.h,v 1.30 2001/11/26 16:54:22 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
The profiling header
-------------------------------------------------------------------------- */
-#ifdef PROFILING
-
typedef struct {
- CostCentreStack *ccs;
+ CostCentreStack *ccs;
+ union {
+ struct _RetainerSet *rs; // Retainer Set
+ StgWord ldvw; // Lag/Drag/Void Word
+ } hp;
} StgProfHeader;
-#else /* !PROFILING */
-
-typedef struct {
- /* empty */
-} StgProfHeader;
-
-#endif /* PROFILING */
-
/* -----------------------------------------------------------------------------
The parallel header
-------------------------------------------------------------------------- */
-#ifdef PAR
-
typedef struct {
/* StgWord ga; */ /* nope! global addresses are managed via a hash table */
} StgParHeader;
-#else /* !PAR */
-
-typedef struct {
- /* empty */
-} StgParHeader;
-
-#endif /* PAR */
-
/* -----------------------------------------------------------------------------
The GranSim header
-------------------------------------------------------------------------- */
-#if defined(GRAN)
-
typedef struct {
StgWord procs; /* bitmask indicating on which PEs this closure resides */
} StgGranHeader;
-#else /* !GRAN */
-
-typedef struct {
- /* empty */
-} StgGranHeader;
-
-#endif /* GRAN */
-
/* -----------------------------------------------------------------------------
The ticky-ticky header
info tables to be @_Evacuate_1@ and @_Scavenge_1_0@.
-------------------------------------------------------------------------- */
-#ifdef TICKY_TICKY
-
typedef struct {
/* old: W_ updated; */
} StgTickyHeader;
-#else /* !TICKY_TICKY */
-
-typedef struct {
- /* empty */
-} StgTickyHeader;
-
-#endif /* TICKY_TICKY */
-
/* -----------------------------------------------------------------------------
The full fixed-size closure header