root/include/net/gc.h

/* [previous][next][first][last][top][bottom][index][help] */
   1 /*
   2  *      Interface routines assumed by gc()
   3  *
   4  *      Copyright (C) Barak A. Pearlmutter.
   5  *      Released under the GPL version 2 or later.
   6  *
   7  */
   8 
   9 typedef struct object *pobj;    /* pointer to a guy of the type we gc */
  10 
  11 /*
  12  *      How to mark and unmark objects
  13  */
  14 
  15 extern void gc_mark(pobj);
  16 extern void gc_unmark(pobj);
  17 extern int gc_marked(pobj);
  18 
  19 /* 
  20  *      How to count and access an object's children
  21  */
  22 
  23 extern int n_children(pobj);    /* how many children */
  24 extern pobj child_n(pobj, int); /* child i, numbered 0..n-1 */
  25 
  26 /*
  27  *      How to access the root set
  28  */
  29 
  30 extern int root_size(void);     /* number of things in root set */
  31 extern pobj root_elt(int);      /* element i of root set, numbered 0..n-1 */
  32 
  33 /*
  34  *      How to access the free list
  35  */
  36 
  37 extern void clear_freelist(void);
  38 extern void add_to_free_list(pobj);
  39 
  40 /*
  41  *      How to iterate through all objects in memory
  42  */
  43 
  44 extern int N_OBJS;
  45 extern pobj obj_number(int);
  46 

/* [previous][next][first][last][top][bottom][index][help] */