X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FCompact.h;h=0dce3d0cb652d286eb36d6a995becb260a0584d3;hb=cd47700887365ca2a6af17d03e731efce65cf2ac;hp=4f1d6a27c72bd098a3af7bff03f2f5c239f9b562;hpb=ab0e778ccfde61aed4c22679b24d175fc6cc9bf3;p=ghc-hetmet.git diff --git a/rts/sm/Compact.h b/rts/sm/Compact.h index 4f1d6a2..0dce3d0 100644 --- a/rts/sm/Compact.h +++ b/rts/sm/Compact.h @@ -1,43 +1,20 @@ /* ----------------------------------------------------------------------------- * - * (c) The GHC Team 1998-2005 + * (c) The GHC Team 1998-2008 * * Compacting garbage collector * + * Documentation on the architecture of the Garbage Collector can be + * found in the online commentary: + * + * http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC + * * ---------------------------------------------------------------------------*/ -#ifndef GCCOMPACT_H -#define GCCOMPACT_H - -INLINE_HEADER rtsBool -mark_stack_empty(void) -{ - return mark_sp == mark_stack; -} - -INLINE_HEADER rtsBool -mark_stack_full(void) -{ - return mark_sp >= mark_splim; -} - -INLINE_HEADER void -reset_mark_stack(void) -{ - mark_sp = mark_stack; -} - -INLINE_HEADER void -push_mark_stack(StgPtr p) -{ - *mark_sp++ = p; -} +#ifndef SM_COMPACT_H +#define SM_COMPACT_H -INLINE_HEADER StgPtr -pop_mark_stack(void) -{ - return *--mark_sp; -} +#include "BeginPrivate.h" INLINE_HEADER void mark(StgPtr p, bdescr *bd) @@ -69,6 +46,8 @@ is_marked(StgPtr p, bdescr *bd) return (*bitmap_word & bit_mask); } -void compact(void); +void compact (StgClosure *static_objects); + +#include "EndPrivate.h" -#endif /* GCCOMPACT_H */ +#endif /* SM_COMPACT_H */