generation_gc.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Part of Scheme 48 1.9. See file COPYING for notices and license.
  3. *
  4. * Authors: David Frese, Marcus Crestani, Mike Sperber
  5. */
  6. #ifndef __S48_GC_GENERATION_GC_H
  7. #define __S48_GC_GENERATION_GC_H
  8. #include "scheme48.h"
  9. #include "scheme48vm.h"
  10. #include "memory.h"
  11. #include "page_constants.h"
  12. #include "areas.h"
  13. extern long s48_heap_size(void);
  14. extern char s48_extantP(s48_value thing);
  15. extern void s48_collect(psbool);
  16. extern long s48_gc_count(void);
  17. extern void s48_trace_locationsB(s48_address start, s48_address end);
  18. extern s48_value s48_trace_value(s48_value stob);
  19. extern void s48_trace_stob_contentsB(s48_value stob);
  20. extern void s48_forbid_gcB();
  21. extern void s48_allow_gcB();
  22. extern long s48_available();
  23. void s48_make_availableAgc(long len_in_bytes);
  24. s48_address s48_allocate_small(long len_in_bytes);
  25. s48_address s48_allocate_tracedAgc(long len_in_bytes);
  26. s48_address s48_allocate_untracedAgc(long len_in_bytes);
  27. s48_address s48_allocate_weakAgc(long len_in_bytes);
  28. psbool s48_gc_can_allocate_unmovableP();
  29. s48_address s48_allocate_traced_unmovableAgc(long len_in_bytes);
  30. s48_address s48_allocate_untraced_unmovableAgc(long len_in_bytes);
  31. psbool s48_unmovableP(s48_value stob);
  32. extern void s48_initialize_bibop_heap();
  33. extern void s48_integrate_area(Area* area);
  34. /* only used "internally" */
  35. void s48_internal_trace_locationsB(Area* maybe_area, char area_looked_up, s48_address start,
  36. s48_address end, char* called_from);
  37. extern void s48_walk_heap(void (*do_part)(s48_address, s48_address));
  38. #endif