[BACK]Return to headers.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / gc

Diff for /OpenXM_contrib2/asir2000/gc/headers.c between version 1.1 and 1.3

version 1.1, 1999/12/03 07:39:09 version 1.3, 2001/04/20 07:39:18
Line 22 
Line 22 
  * level tree.   * level tree.
  */   */
   
 # include "gc_priv.h"  # include "private/gc_priv.h"
   
 bottom_index * GC_all_bottom_indices = 0;  bottom_index * GC_all_bottom_indices = 0;
                                 /* Pointer to first (lowest addr) */                                  /* Pointer to first (lowest addr) */
Line 50  ptr_t h;
Line 50  ptr_t h;
   
 static ptr_t scratch_free_ptr = 0;  static ptr_t scratch_free_ptr = 0;
   
 ptr_t GC_scratch_end_ptr = 0;  /* GC_scratch_last_end_ptr is end point of last obtained scratch area.  */
   /* GC_scratch_end_ptr is end point of current scratch area.             */
 ptr_t GC_scratch_last_end_ptr = 0;  
                 /* End point of last obtained scratch area */  
   
 ptr_t GC_scratch_alloc(bytes)  ptr_t GC_scratch_alloc(bytes)
 register word bytes;  register word bytes;
Line 128  hdr * hhdr;
Line 126  hdr * hhdr;
     hhdr -> hb_next = (struct hblk *) hdr_free_list;      hhdr -> hb_next = (struct hblk *) hdr_free_list;
     hdr_free_list = hhdr;      hdr_free_list = hhdr;
 }  }
   
   hdr * GC_invalid_header;
   
   #ifdef USE_HDR_CACHE
     word GC_hdr_cache_hits = 0;
     word GC_hdr_cache_misses = 0;
   #endif
   
 void GC_init_headers()  void GC_init_headers()
 {  {
Line 138  void GC_init_headers()
Line 143  void GC_init_headers()
     for (i = 0; i < TOP_SZ; i++) {      for (i = 0; i < TOP_SZ; i++) {
         GC_top_index[i] = GC_all_nils;          GC_top_index[i] = GC_all_nils;
     }      }
       GC_invalid_header = alloc_hdr();
       GC_invalidate_map(GC_invalid_header);
 }  }
   
 /* Make sure that there is a bottom level index block for address addr  */  /* Make sure that there is a bottom level index block for address addr  */
Line 191  word addr;
Line 198  word addr;
     return(TRUE);      return(TRUE);
 }  }
   
 /* Install a header for block h.  */  /* Install a header for block h.        */
 /* The header is uninitialized.   */  /* The header is uninitialized.         */
 /* Returns FALSE on failure.      */  /* Returns the header or 0 on failure.  */
 GC_bool GC_install_header(h)  struct hblkhdr * GC_install_header(h)
 register struct hblk * h;  register struct hblk * h;
 {  {
     hdr * result;      hdr * result;
Line 205  register struct hblk * h;
Line 212  register struct hblk * h;
 #   ifdef USE_MUNMAP  #   ifdef USE_MUNMAP
         result -> hb_last_reclaimed = GC_gc_no;          result -> hb_last_reclaimed = GC_gc_no;
 #   endif  #   endif
     return(result != 0);      return(result);
 }  }
   
 /* Set up forwarding counts for block h of size sz */  /* Set up forwarding counts for block h of size sz */
Line 253  register word sz; /* bytes */
Line 260  register word sz; /* bytes */
 /* Apply fn to all allocated blocks */  /* Apply fn to all allocated blocks */
 /*VARARGS1*/  /*VARARGS1*/
 void GC_apply_to_all_blocks(fn, client_data)  void GC_apply_to_all_blocks(fn, client_data)
 void (*fn)(/* struct hblk *h, word client_data */);  void (*fn) GC_PROTO((struct hblk *h, word client_data));
 word client_data;  word client_data;
 {  {
     register int j;      register int j;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>