X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FBlock.h;h=599dc27d45973d994a6efd375adff0eaf60f669e;hb=b7a226fdc7a003677fef20652d5a4597f6b29c62;hp=f6a695c366abd0160c134c706229e055395619ce;hpb=30681e796f707fa109aaf756d4586049f595195d;p=ghc-hetmet.git diff --git a/ghc/includes/Block.h b/ghc/includes/Block.h index f6a695c..599dc27 100644 --- a/ghc/includes/Block.h +++ b/ghc/includes/Block.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Block.h,v 1.6 1999/11/09 15:47:07 simonmar Exp $ + * $Id: Block.h,v 1.9 2001/07/23 17:23:19 simonmar Exp $ * * (c) The GHC Team, 1998-1999 * @@ -44,11 +44,14 @@ typedef struct _bdescr { StgPtr start; /* start addr of memory */ StgPtr free; /* first free byte of memory */ struct _bdescr *link; /* used for chaining blocks together */ - struct _bdescr *back; /* used (occasionally) for doubly-linked lists*/ - struct _generation *gen; /* generation */ + union { + struct _bdescr *back; /* used (occasionally) for doubly-linked lists*/ + StgWord *bitmap; + } u; + unsigned int gen_no; /* generation */ struct _step *step; /* step */ StgWord32 blocks; /* no. of blocks (if grp head, 0 otherwise) */ - StgWord32 evacuated; /* block is in to-space */ + StgWord32 flags; /* block is in to-space */ #if SIZEOF_VOID_P == 8 StgWord32 _padding[2]; #else @@ -66,6 +69,9 @@ typedef struct _bdescr { #define BDESCR_SHIFT 5 #endif +#define BF_EVACUATED 1 +#define BF_LARGE 2 + /* Finding the block descriptor for a given block -------------------------- */ static inline bdescr *Bdescr(StgPtr p) @@ -110,4 +116,4 @@ static inline bdescr *Bdescr(StgPtr p) #define BLOCKS_TO_MBLOCKS(n) \ (1 + (W_)MBLOCK_ROUND_UP((n-BLOCKS_PER_MBLOCK) * BLOCK_SIZE) / MBLOCK_SIZE) -#endif BLOCK_H +#endif /* BLOCK_H */