3 #include "mono/utils/mono-threads-api.h"
4 #include "mono/utils/atomic.h"
5 #include "mono/metadata/loader-internals.h"
6 #include "mono/metadata/icall-internals.h"
8 #include "mono-native-platform.h"
10 extern MonoNativePlatformType mono_native_platform_type
;
11 volatile static gboolean module_initialized
;
12 volatile static gint32 module_counter
;
15 mono_native_get_platform_type (void)
17 return mono_native_platform_type
;
21 ves_icall_MonoNativePlatform_IncrementInternalCounter (void)
23 return mono_atomic_inc_i32 (&module_counter
);
27 mono_native_is_initialized (void)
29 return module_initialized
;
33 mono_native_initialize (void)
35 if (mono_atomic_cas_i32 (&module_initialized
, TRUE
, FALSE
) != FALSE
)
38 mono_add_internal_call_with_flags ("Mono.MonoNativePlatform::IncrementInternalCounter", ves_icall_MonoNativePlatform_IncrementInternalCounter
, TRUE
);