1 /* 2 * Part of Scheme 48 1.9. See file COPYING for notices and license. 3 * 4 * Authors: Richard Kelsey, Jonathan Rees, David Frese, Mike Sperber, 5 * Marcus Crestani 6 */ 7 8 9 /* 10 * Externally visible objects defined in scheme48heap.c. 11 */ 12 13 /* initialize top-level variables */ 14 extern void s48_heap_init(void); 15 16 /* called from init.c */ 17 extern void s48_forbid_gcB(void); 18 extern void s48_allow_gcB(void); 19 20 /* heap-init interface */ 21 extern void s48_initialize_heap(long, char *, long); 22 extern void s48_initialize_image_areas(long, long, long, long, long, long); 23 extern void s48_register_static_areas(long, char **, long *, 24 long, char **, long *); 25 26 /* heap interface */ 27 extern long s48_available(void); 28 extern char s48_stob_in_heapP(long); 29 extern long s48_heap_size(void); 30 extern long s48_find_all(long); 31 extern long s48_find_allint(long); 32 extern long s48_find_all_records(long); 33 extern long s48_gather_objects(char(*)(long), char(*)(char(*)(long))); 34 35 /* for reading/writing images (scm-module heap-base ) */ 36 extern void s48_set_max_heap_sizeB(long); 37 extern long s48_max_heap_size(void); 38 extern char * s48_get_new_heap_start_addr(void); 39 40 extern char * s48_get_new_small_start_addr(void); 41 extern void s48_set_new_small_start_addrB(char *); 42 extern char * s48_get_new_small_end_addr(void); 43 extern long s48_get_new_small_size(void); 44 45 extern char * s48_get_new_large_start_addr(void); 46 extern void s48_set_new_large_start_addrB(char *); 47 extern char * s48_get_new_large_end_addr(void); 48 extern long s48_get_new_large_size(void); 49 50 extern char * s48_get_new_weaks_start_addr(void); 51 extern void s48_set_new_weaks_start_addrB(char *); 52 extern char * s48_get_new_weaks_end_addr(void); 53 extern long s48_get_new_weaks_size(void); 54 55 extern char * s48_heap_begin(void); 56 extern char * s48_heap_pointer(void); 57 extern char * s48_oldspace_begin(void); 58 extern char * s48_oldspace_end(void); 59 60 extern int s48_area_type_size(s48_value); /* return value is really an enum */ 61 62 /* gc interface */ 63 extern void s48_check_heap_sizeB(void); 64 extern void s48_collect(psbool); 65 extern long s48_trace_value(long); 66 extern void s48_trace_locationsB(char *, char *); 67 extern void s48_trace_stob_contentsB(long); 68 extern void s48_trace_continuation_contentsB(char *, char *, long); 69 extern char s48_extantP(long); 70 extern long s48_gc_count(void); 71 72 /* allocation interface */ 73 extern void s48_make_availableAgc(long); 74 extern char * s48_allocate_small(long); 75 extern char * s48_allocate_tracedAgc(long); 76 extern char * s48_allocate_untracedAgc(long); 77 extern char * s48_allocate_weakAgc(long); 78 extern char * s48_allocate_untraced_unmovableAgc(long); 79 80 /* debugging */ 81 extern char s48_check_heap(long); 82