remove empty dir
[ghc-hetmet.git] / ghc / includes / Block.h
index 37d17a5..d1705ad 100644 (file)
@@ -1,5 +1,4 @@
 /* -----------------------------------------------------------------------------
- * $Id: Block.h,v 1.18 2005/02/10 13:02:00 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -57,7 +56,7 @@ typedef struct bdescr_ {
       StgWord *bitmap;
   } u;
   unsigned int gen_no;         /* generation */
-  struct _step *step;          /* step */
+  struct step_ *step;          /* step */
   StgWord32 blocks;            /* no. of blocks (if grp head, 0 otherwise) */
   StgWord32 flags;              /* block is in to-space */
 #if SIZEOF_VOID_P == 8
@@ -86,6 +85,8 @@ typedef struct bdescr_ {
 #define BF_PINNED    4
 /* Block is part of a compacted generation */
 #define BF_COMPACTED 8
+/* Block is free, and on the free list */
+#define BF_FREE      16
 
 /* Finding the block descriptor for a given block -------------------------- */
 
@@ -143,7 +144,7 @@ INLINE_HEADER bdescr *Bdescr(StgPtr p)
 
 
 #ifndef CMINUSMINUS 
-// to the end...
+/* to the end... */
 
 /* Double-linked block lists: --------------------------------------------- */
 
@@ -164,13 +165,21 @@ extern void initBlockAllocator(void);
 
 /* Allocation -------------------------------------------------------------- */
 
-extern bdescr *allocGroup(nat n);
-extern bdescr *allocBlock(void);
+bdescr *allocGroup(nat n);
+bdescr *allocBlock(void);
+
+// versions that take the storage manager lock for you:
+bdescr *allocGroup_lock(nat n);
+bdescr *allocBlock_lock(void);
 
 /* De-Allocation ----------------------------------------------------------- */
 
-extern void freeGroup(bdescr *p);
-extern void freeChain(bdescr *p);
+void freeGroup(bdescr *p);
+void freeChain(bdescr *p);
+
+// versions that take the storage manager lock for you:
+void freeGroup_lock(bdescr *p);
+void freeChain_lock(bdescr *p);
 
 /* Round a value to megablocks --------------------------------------------- */