Update pipeline-netcore-runtime.yml
[mono-project.git] / mono / native / mono-native-platform.c
bloba269c239fb161f826349f6b3bf48b4e79f3ceabf
1 #include <config.h>
2 #include <glib.h>
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;
13 int32_t
14 mono_native_get_platform_type (void)
16 return mono_native_platform_type;
19 static int32_t
20 ves_icall_MonoNativePlatform_IncrementInternalCounter (void)
22 return mono_atomic_inc_i32 (&module_counter);
25 int32_t
26 mono_native_is_initialized (void)
28 return module_initialized;
31 void
32 mono_native_initialize (void)
34 if (mono_atomic_cas_i32 (&module_initialized, TRUE, FALSE) != FALSE)
35 return;
37 mono_add_internal_call_with_flags ("Mono.MonoNativePlatform::IncrementInternalCounter", ves_icall_MonoNativePlatform_IncrementInternalCounter, TRUE);