scheme48heap.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Externally visible objects defined in scheme48heap.c.
  3. */
  4. /* initialize top-level variables */
  5. extern void s48_heap_init(void);
  6. /* called from init.c */
  7. extern void s48_forbid_gcB(void);
  8. extern void s48_allow_gcB(void);
  9. /* heap-init interface */
  10. extern void s48_initialize_heap(long, char *, long);
  11. extern void s48_initialize_image_areas(long, long, long, long, long, long);
  12. extern void s48_register_static_areas(long, char **, long *,
  13. long, char **, long *);
  14. /* heap interface */
  15. extern long s48_available(void);
  16. extern char s48_stob_in_heapP(long);
  17. extern long s48_heap_size(void);
  18. extern long s48_find_all(long);
  19. extern long s48_find_allint(long);
  20. extern long s48_find_all_records(long);
  21. extern long s48_gather_objects(char(*)(long), char(*)(char(*)(long)));
  22. /* for reading/writing images (scm-module heap-base ) */
  23. extern void s48_set_max_heap_sizeB(long);
  24. extern long s48_max_heap_size(void);
  25. extern char * s48_get_new_heap_start_addr(void);
  26. extern char * s48_get_new_small_start_addr(void);
  27. extern void s48_set_new_small_start_addrB(char *);
  28. extern char * s48_get_new_small_end_addr(void);
  29. extern long s48_get_new_small_size(void);
  30. extern char * s48_get_new_large_start_addr(void);
  31. extern void s48_set_new_large_start_addrB(char *);
  32. extern char * s48_get_new_large_end_addr(void);
  33. extern long s48_get_new_large_size(void);
  34. extern char * s48_get_new_weaks_start_addr(void);
  35. extern void s48_set_new_weaks_start_addrB(char *);
  36. extern char * s48_get_new_weaks_end_addr(void);
  37. extern long s48_get_new_weaks_size(void);
  38. extern char * s48_heap_begin(void);
  39. extern char * s48_heap_pointer(void);
  40. extern char * s48_oldspace_begin(void);
  41. extern char * s48_oldspace_end(void);
  42. extern int s48_area_type_size(s48_value); /* return value is really an enum */
  43. /* gc interface */
  44. extern void s48_check_heap_sizeB(void);
  45. extern void s48_collect(psbool);
  46. extern long s48_trace_value(long);
  47. extern void s48_trace_locationsB(char *, char *);
  48. extern void s48_trace_stob_contentsB(long);
  49. extern void s48_trace_continuation_contentsB(char *, char *, long);
  50. extern char s48_extantP(long);
  51. extern long s48_gc_count(void);
  52. /* allocation interface */
  53. extern void s48_make_availableAgc(long);
  54. extern char * s48_allocate_small(long);
  55. extern char * s48_allocate_tracedAgc(long);
  56. extern char * s48_allocate_untracedAgc(long);
  57. extern char * s48_allocate_weakAgc(long);
  58. extern char * s48_allocate_untraced_unmovableAgc(long);
  59. /* debugging */
  60. extern char s48_check_heap(long);