3 #include "mono/utils/mono-threads-api.h"
4 #include "mono/utils/atomic.h"
5 #include "mono/metadata/icall-internals.h"
7 #include "mono-native-platform.h"
9 extern MonoNativePlatformType mono_native_platform_type
;
10 volatile static gboolean module_initialized
;
11 volatile static gint32 module_counter
;
14 mono_native_get_platform_type (void)
16 return mono_native_platform_type
;
20 ves_icall_MonoNativePlatform_IncrementInternalCounter (void)
22 return mono_atomic_inc_i32 (&module_counter
);
26 mono_native_is_initialized (void)
28 return module_initialized
;
32 mono_native_initialize (void)
34 if (mono_atomic_cas_i32 (&module_initialized
, TRUE
, FALSE
) != FALSE
)
37 mono_add_internal_call_with_flags ("Mono.MonoNativePlatform::IncrementInternalCounter", ves_icall_MonoNativePlatform_IncrementInternalCounter
, TRUE
);