X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsgen-bridge-internals.h;h=09224b2f15be171f37d2107b293af76b76c47d38;hb=3fd54893bc792eee42164bfb605b418105a92f92;hp=ac7dfb975998a1f290d9ab82d0923a253b8f4b58;hpb=fde24d3d17afee83e267800a604d5ec09b82346d;p=mono.git diff --git a/mono/metadata/sgen-bridge-internals.h b/mono/metadata/sgen-bridge-internals.h index ac7dfb97599..09224b2f15b 100644 --- a/mono/metadata/sgen-bridge-internals.h +++ b/mono/metadata/sgen-bridge-internals.h @@ -3,18 +3,7 @@ * * Copyright (C) 2015 Xamarin Inc * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License 2.0 as published by the Free Software Foundation; - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License 2.0 along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #ifndef __MONO_SGENBRIDGEINTERNAL_H__ @@ -44,9 +33,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); @@ -55,8 +51,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(). @@ -73,6 +70,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