X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FBlock.h;h=ec894da02e9655fddc6cce3dde2c7877e994e87b;hb=8bf9fcc6529cac5fd4699909757b8e094118e5e4;hp=e2e691ab0e17db80981f5fc923b3b5a47eab9756;hpb=dbbf15c0f141357aa49b583286174867baadb821;p=ghc-hetmet.git diff --git a/includes/Block.h b/includes/Block.h index e2e691a..ec894da 100644 --- a/includes/Block.h +++ b/includes/Block.h @@ -84,12 +84,16 @@ typedef struct bdescr_ { #define BF_LARGE 2 /* Block is pinned */ #define BF_PINNED 4 -/* Block is part of a compacted generation */ -#define BF_COMPACTED 8 +/* Block is to be marked, not copied */ +#define BF_MARKED 8 /* Block is free, and on the free list (TODO: is this used?) */ #define BF_FREE 16 /* Block is executable */ #define BF_EXEC 32 +/* Block contains only a small amount of live data */ +#define BF_FRAGMENTED 64 +/* we know about this block (for finding leaks) */ +#define BF_KNOWN 128 /* Finding the block descriptor for a given block -------------------------- */ @@ -254,5 +258,14 @@ round_to_mblocks(StgWord words) return words; } +INLINE_HEADER StgWord +round_up_to_mblocks(StgWord words) +{ + words += FIRST_BLOCK_OFF/sizeof(W_); + words = ((words / MBLOCK_SIZE_W) + 1) * MBLOCK_SIZE_W; + words -= FIRST_BLOCK_OFF/sizeof(W_); + return words; +} + #endif /* !CMINUSMINUS */ #endif /* BLOCK_H */