#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 -------------------------- */
/* 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 --------------------------------------------- */