/****************************************************************************
*       gc.h
*
*       Garbage Collecting Unit Header File
* **********************************************************************
* *     Copyright (c) by Barak Pearlmutter and Kevin Lang, 1987-98.    *
* *     Portions copyright (c) by Alex Stuebinger, 1998.               *
* *     Placed under the terms of the GNU General Public License       *
* *     as published by the Free Software Foundation.                  *
* **********************************************************************
*
*       Revision log:
*       *************
*
*       date     time   author  comments
*       ================================================================
*       11/01/98 18:03  stuebi  initial revision
*       ----------------------------------------------------------------
*
*       ================================================================
*
*
*       Description:
*       ************
*
*
*
*       Planned:
*       ********
*
*
*
*/


#ifndef _GC_H_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif

#ifndef __STDC__
#error you lose... the whole code is ansi-c, try older release
#endif

#include "emulator.h"


/* 1/RECLAIM_FACTOR is the target for how much of new space should be used
   after a gc.  If more than this is used, the next new space allocated will
   be bigger. */

#define RECLAIM_FACTOR 3

#define OLD_PTR(r) (SPACE_PTR(old,(r)) || (full_gc && SPACE_PTR(spatic,(r))))


extern space _new, spatic, old;



extern bool trace_gc, full_gc;

extern unsigned long post_gc_wp(void);


#define _GC_H_INCLUDED
#ifdef __cplusplus
};
#endif
#endif








