[boehm] Match BDWGC v7 API
authorIvan Maidanski <ivmai@mail.ru>
Thu, 12 Nov 2015 21:47:52 +0000 (00:47 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 17 Nov 2015 22:05:26 +0000 (01:05 +0300)
commitb0e91acb611bd7e6c39bc8756b38b41809a727a3
treee1ad7e4e78f9c7f963ae5ef7f21f8576fc60d67f
parent5c2596af27fcf66f201962a130923153d2463ca1
[boehm] Match BDWGC v7 API

Mono-specific libgc functionality has been recently added to BDWGC.
This commit changes API of included Boehm GC to match that of the
external GC.

 * Renaming:
   - GCEventType -> GC_EventType
   - GC_get_restart_signal -> GC_get_thr_restart_signal
   - GC_toggleref_register_callback -> GC_set_toggleref_func
   - GC_set_finalizer_notify_proc -> GC_set_await_finalize_proc

 * Replace global variable with a setter:
   - GC_notify_event -> GC_set_on_collection_event() (acquires GC lock)

 * Foreign threads registration:
   - add GC_allow_register_threads() (no-op for GC v6, called by
     mono_gc_base_init)
   - add GC_SUCCESS, GC_DUPLICATE, GC_NO_MEMORY, GC_UNIMPLEMENTED macros
   - add struct GC_stack_base
   - replace GC_thread_register_foreign(void*) with
     GC_register_my_thread(struct GC_stack_base)
   - define GC_register_my_thread also for Solaris and Win32
   - GC_register_my_thread returns GC_DUPLICATE if already registered

 * Toggle-ref callback declaration change:
   - add GC_ToggleRefStatus (enum type)
   - callback returns GC_ToggleRefStatus instead of int

 * Toggle-ref addition status checked:
   - GC_toggleref_add return type changed from void to int
   - GC_toggleref_add returns GC_SUCCESS or GC_NO_MEMORY
   - static ensure_toggleref_capacity() returns FALSE if GC MALLOC failed
   - call g_error() if GC_toggleref_add failed

 * Conditional public function declaration:
   - wrap GC_DllMain declaration into ifdef GC_INSIDE_DLL
   - define GC_INSIDE_DLL prior to include gc.h
libgc/alloc.c
libgc/finalize.c
libgc/include/gc.h
libgc/include/private/gc_priv.h
libgc/misc.c
libgc/pthread_support.c
libgc/solaris_threads.c
libgc/win32_threads.c
mono/metadata/boehm-gc.c
mono/utils/gc_wrapper.h