*** empty log message ***
[bpt/guile.git] / libguile / private-gc.h
index 52556be..484b349 100644 (file)
 #define SCM_HEAP_SEG_SIZE (16384L * sizeof (scm_t_cell))
 
 
-#define DOUBLECELL_ALIGNED_P(x)  (((2 * sizeof (scm_t_cell) - 1) & SCM_UNPACK (x)) == 0)
+#define SCM_DOUBLECELL_ALIGNED_P(x)  (((2 * sizeof (scm_t_cell) - 1) & SCM_UNPACK (x)) == 0)
 
 
+#define SCM_GC_CARD_BVEC_SIZE_IN_LONGS \
+    ((SCM_GC_CARD_N_CELLS + SCM_C_BVEC_LONG_BITS - 1) / SCM_C_BVEC_LONG_BITS)
+#define SCM_GC_IN_CARD_HEADERP(x) \
+  (scm_t_cell *) (x) <  SCM_GC_CELL_CARD (x) + SCM_GC_CARD_N_HEADER_CELLS
 
 
 int scm_getenv_int (const char *var, int def);
@@ -109,6 +113,7 @@ typedef struct scm_t_cell_type_statistics {
    */
   unsigned long heap_size;
 
+  
 } scm_t_cell_type_statistics;
 
 
@@ -119,7 +124,8 @@ extern unsigned long scm_gc_cells_collected_1;
 void scm_i_adjust_min_yield (scm_t_cell_type_statistics *freelist);
 void scm_i_gc_sweep_freelist_reset (scm_t_cell_type_statistics *freelist);
 int scm_i_gc_grow_heap_p (scm_t_cell_type_statistics * freelist);
-     
+
+
 #define SCM_HEAP_SIZE \
   (scm_i_master_freelist.heap_size + scm_i_master_freelist2.heap_size)
 
@@ -203,8 +209,8 @@ extern scm_t_heap_segment ** scm_i_heap_segment_table;
 extern size_t scm_i_heap_segment_table_size;
 
 
-int scm_init_card_freelist (scm_t_cell * card, SCM *free_list,int);
-int scm_i_sweep_card (scm_t_cell * card, SCM *free_list,int);
+int scm_i_init_card_freelist (scm_t_cell * card, SCM *free_list,scm_t_heap_segment*);
+int scm_i_sweep_card (scm_t_cell * card, SCM *free_list, scm_t_heap_segment*);
 int scm_i_initialize_heap_segment_data (scm_t_heap_segment * segment, size_t requested);
 int scm_i_segment_card_count (scm_t_heap_segment * seg);
 int scm_i_segment_cell_count (scm_t_heap_segment * seg);
@@ -223,7 +229,7 @@ void scm_i_sweep_segments (void);
 SCM scm_i_sweep_some_segments (scm_t_cell_type_statistics * fl);
 void scm_i_reset_segments (void);
 void scm_i_sweep_all_segments (char const *reason);
-void scm_i_make_initial_segment (size_t init_heap_size, scm_t_cell_type_statistics *freelist);
+void scm_i_make_initial_segment (int init_heap_size, scm_t_cell_type_statistics *freelist);
 
 extern long int scm_i_deprecated_memory_return;
 
@@ -235,5 +241,6 @@ void scm_gc_init_malloc (void);
 void scm_gc_init_freelist (void);
 void scm_gc_init_segments (void);
 void scm_gc_init_mark (void);
-     
+
+
 #endif