X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsgen-bridge-internals.h;h=cf987d045d2adbab4bad2c5f2e7c816953d3c499;hb=HEAD;hp=df6a4bb8cdee7513673b29f6cd08b8ed3e3ae84b;hpb=3544fc56904e06123287d621fa4a091f27c4230d;p=mono.git diff --git a/mono/metadata/sgen-bridge-internals.h b/mono/metadata/sgen-bridge-internals.h index df6a4bb8cde..cf987d045d2 100644 --- a/mono/metadata/sgen-bridge-internals.h +++ b/mono/metadata/sgen-bridge-internals.h @@ -1,5 +1,6 @@ -/* - * sgen-bridge-internals.h: The cross-GC bridge. +/** + * \file + * The cross-GC bridge. * * Copyright (C) 2015 Xamarin Inc * @@ -33,9 +34,16 @@ void sgen_bridge_describe_pointer (GCObject *object); gboolean sgen_is_bridge_object (GCObject *obj); void sgen_mark_bridge_object (GCObject *obj); +gboolean sgen_bridge_handle_gc_param (const char *opt); gboolean sgen_bridge_handle_gc_debug (const char *opt); void sgen_bridge_print_gc_debug_usage (void); +typedef struct { + char *dump_prefix; + gboolean accounting; + gboolean scc_precise_merge; // Used by Tarjan +} SgenBridgeProcessorConfig; + typedef struct { void (*reset_data) (void); void (*processing_stw_step) (void); @@ -44,8 +52,9 @@ typedef struct { MonoGCBridgeObjectKind (*class_kind) (MonoClass *klass); void (*register_finalized_object) (GCObject *object); void (*describe_pointer) (GCObject *object); - void (*enable_accounting) (void); - void (*set_dump_prefix) (const char *prefix); + + /* Should be called once, immediately after init */ + void (*set_config) (const SgenBridgeProcessorConfig *); /* * These are set by processing_build_callback_data(). @@ -62,6 +71,7 @@ void sgen_new_bridge_init (SgenBridgeProcessor *collector); void sgen_tarjan_bridge_init (SgenBridgeProcessor *collector); void sgen_set_bridge_implementation (const char *name); void sgen_bridge_set_dump_prefix (const char *prefix); +void sgen_init_bridge (void); #endif