[BACK]Return to gc.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gc

Diff for /OpenXM_contrib/gc/Attic/gc.h between version 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2000/04/14 11:07:59 version 1.1.1.3, 2000/12/01 14:48:26
Line 1 
Line 1 
 /*  /*
  * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers   * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
  * Copyright (c) 1991-1995 by Xerox Corporation.  All rights reserved.   * Copyright (c) 1991-1995 by Xerox Corporation.  All rights reserved.
  * Copyright 1996 by Silicon Graphics.  All rights reserved.   * Copyright 1996-1999 by Silicon Graphics.  All rights reserved.
    * Copyright 1999 by Hewlett-Packard Company.  All rights reserved.
  *   *
  * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED   * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
  * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.   * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
Line 35 
Line 36 
 #include "libgc_globals.h"  #include "libgc_globals.h"
 #endif  #endif
   
   #if defined(__MINGW32__) && defined(WIN32_THREADS)
   # ifdef GC_BUILD
   #   define GC_API __declspec(dllexport)
   # else
   #   define GC_API __declspec(dllimport)
   # endif
   #endif
   
 #if defined(_MSC_VER) && defined(_DLL)  #if defined(_MSC_VER) && defined(_DLL)
 # ifdef GC_BUILD  # ifdef GC_BUILD
 #   define GC_API __declspec(dllexport)  #   define GC_API __declspec(dllexport)
Line 130  GC_API int GC_dont_expand;
Line 139  GC_API int GC_dont_expand;
                         /* Dont expand heap unless explicitly requested */                          /* Dont expand heap unless explicitly requested */
                         /* or forced to.                                */                          /* or forced to.                                */
   
   GC_API int GC_use_entire_heap;
                   /* Causes the nonincremental collector to use the       */
                   /* entire heap before collecting.  This was the only    */
                   /* option for GC versions < 5.0.  This sometimes        */
                   /* results in more large block fragmentation, since     */
                   /* very larg blocks will tend to get broken up          */
                   /* during each GC cycle.  It is likely to result in a   */
                   /* larger working set, but lower collection             */
                   /* frequencies, and hence fewer instructions executed   */
                   /* in the collector.                                    */
   
 GC_API int GC_full_freq;    /* Number of partial collections between    */  GC_API int GC_full_freq;    /* Number of partial collections between    */
                             /* full collections.  Matters only if       */                              /* full collections.  Matters only if       */
                             /* GC_incremental is set.                   */                              /* GC_incremental is set.                   */
Line 352  GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROT
Line 372  GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROT
   
 #ifdef GC_ADD_CALLER  #ifdef GC_ADD_CALLER
 #  define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__  #  define GC_EXTRAS GC_RETURN_ADDR, __FILE__, __LINE__
 #  define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * descr_string,  #  define GC_EXTRA_PARAMS GC_word ra, GC_CONST char * s, int i
                           int descr_int  
 #else  #else
 #  define GC_EXTRAS __FILE__, __LINE__  #  define GC_EXTRAS __FILE__, __LINE__
 #  define GC_EXTRA_PARAMS GC_CONST char * descr_string, int descr_int  #  define GC_EXTRA_PARAMS GC_CONST char * s, int i
 #endif  #endif
   
 /* Debugging (annotated) allocation.  GC_gcollect will check            */  /* Debugging (annotated) allocation.  GC_gcollect will check            */
Line 387  GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_
Line 406  GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_
         GC_debug_register_finalizer(p, f, d, of, od)          GC_debug_register_finalizer(p, f, d, of, od)
 #   define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \  #   define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
         GC_debug_register_finalizer_ignore_self(p, f, d, of, od)          GC_debug_register_finalizer_ignore_self(p, f, d, of, od)
   #   define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
           GC_debug_register_finalizer_no_order(p, f, d, of, od)
 #   define GC_MALLOC_STUBBORN(sz) GC_debug_malloc_stubborn(sz, GC_EXTRAS);  #   define GC_MALLOC_STUBBORN(sz) GC_debug_malloc_stubborn(sz, GC_EXTRAS);
 #   define GC_CHANGE_STUBBORN(p) GC_debug_change_stubborn(p)  #   define GC_CHANGE_STUBBORN(p) GC_debug_change_stubborn(p)
 #   define GC_END_STUBBORN_CHANGE(p) GC_debug_end_stubborn_change(p)  #   define GC_END_STUBBORN_CHANGE(p) GC_debug_end_stubborn_change(p)
Line 403  GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_
Line 424  GC_API void GC_debug_end_stubborn_change GC_PROTO((GC_
         GC_register_finalizer(p, f, d, of, od)          GC_register_finalizer(p, f, d, of, od)
 #   define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \  #   define GC_REGISTER_FINALIZER_IGNORE_SELF(p, f, d, of, od) \
         GC_register_finalizer_ignore_self(p, f, d, of, od)          GC_register_finalizer_ignore_self(p, f, d, of, od)
   #   define GC_REGISTER_FINALIZER_NO_ORDER(p, f, d, of, od) \
           GC_register_finalizer_no_order(p, f, d, of, od)
 #   define GC_MALLOC_STUBBORN(sz) GC_malloc_stubborn(sz)  #   define GC_MALLOC_STUBBORN(sz) GC_malloc_stubborn(sz)
 #   define GC_CHANGE_STUBBORN(p) GC_change_stubborn(p)  #   define GC_CHANGE_STUBBORN(p) GC_change_stubborn(p)
 #   define GC_END_STUBBORN_CHANGE(p) GC_end_stubborn_change(p)  #   define GC_END_STUBBORN_CHANGE(p) GC_end_stubborn_change(p)
Line 481  GC_API void GC_debug_register_finalizer_ignore_self
Line 504  GC_API void GC_debug_register_finalizer_ignore_self
         GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,          GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
                   GC_finalization_proc *ofn, GC_PTR *ocd));                    GC_finalization_proc *ofn, GC_PTR *ocd));
   
   /* Another version of the above.  It ignores all cycles.        */
   /* It should probably only be used by Java implementations.      */
   GC_API void GC_register_finalizer_no_order
           GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
                     GC_finalization_proc *ofn, GC_PTR *ocd));
   GC_API void GC_debug_register_finalizer_no_order
           GC_PROTO((GC_PTR obj, GC_finalization_proc fn, GC_PTR cd,
                     GC_finalization_proc *ofn, GC_PTR *ocd));
   
   
 /* The following routine may be used to break cycles between    */  /* The following routine may be used to break cycles between    */
 /* finalizable objects, thus causing cyclic finalizable         */  /* finalizable objects, thus causing cyclic finalizable         */
 /* objects to be finalized in the correct order.  Standard      */  /* objects to be finalized in the correct order.  Standard      */
Line 537  GC_API int GC_unregister_disappearing_link GC_PROTO((G
Line 570  GC_API int GC_unregister_disappearing_link GC_PROTO((G
 GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));  GC_API GC_PTR GC_make_closure GC_PROTO((GC_finalization_proc fn, GC_PTR data));
 GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));  GC_API void GC_debug_invoke_finalizer GC_PROTO((GC_PTR obj, GC_PTR data));
   
   /* Returns !=0  if GC_invoke_finalizers has something to do.            */
   GC_API int GC_should_invoke_finalizers GC_PROTO((void));
   
 GC_API int GC_invoke_finalizers GC_PROTO((void));  GC_API int GC_invoke_finalizers GC_PROTO((void));
         /* Run finalizers for all objects that are ready to     */          /* Run finalizers for all objects that are ready to     */
         /* be finalized.  Return the number of finalizers       */          /* be finalized.  Return the number of finalizers       */
Line 700  GC_API void (*GC_is_visible_print_proc)
Line 736  GC_API void (*GC_is_visible_print_proc)
 # endif /* SOLARIS_THREADS */  # endif /* SOLARIS_THREADS */
   
   
 #if defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS)  #if !defined(USE_LD_WRAP) && \
       (defined(IRIX_THREADS) || defined(LINUX_THREADS) || defined(HPUX_THREADS))
 /* We treat these similarly. */  /* We treat these similarly. */
 # include <pthread.h>  # include <pthread.h>
 # include <signal.h>  # include <signal.h>
Line 714  GC_API void (*GC_is_visible_print_proc)
Line 751  GC_API void (*GC_is_visible_print_proc)
 # define pthread_create GC_pthread_create  # define pthread_create GC_pthread_create
 # define pthread_sigmask GC_pthread_sigmask  # define pthread_sigmask GC_pthread_sigmask
 # define pthread_join GC_pthread_join  # define pthread_join GC_pthread_join
   # define dlopen GC_dlopen
   
 #endif /* IRIX_THREADS || LINUX_THREADS */  #endif /* xxxxx_THREADS */
   
 # if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \  # if defined(PCR) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || \
         defined(IRIX_THREADS) || defined(LINUX_THREADS) || \          defined(IRIX_THREADS) || defined(LINUX_THREADS) || \

Legend:
Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3

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