Implement vararg support for s390. Minor fix to atomic operation for s390.
[mono.git] / mono / io-layer / critical-sections.h
blob4ddafddab84a5d011f67cae81a5217e74721e582
1 /*
2 * critical-sections.h: Critical sections
4 * Author:
5 * Dick Porter (dick@ximian.com)
7 * (C) 2002 Ximian, Inc.
8 */
10 #ifndef _WAPI_CRITICAL_SECTIONS_H_
11 #define _WAPI_CRITICAL_SECTIONS_H_
13 #include <glib.h>
14 #include <pthread.h>
16 #include "mono-mutex.h"
18 typedef struct _WapiCriticalSection WapiCriticalSection;
20 struct _WapiCriticalSection
22 guint32 depth;
23 mono_mutex_t mutex;
26 extern void InitializeCriticalSection(WapiCriticalSection *section);
27 extern gboolean InitializeCriticalSectionAndSpinCount(WapiCriticalSection *section, guint32 spincount);
28 extern void DeleteCriticalSection(WapiCriticalSection *section);
29 extern guint32 SetCriticalSectionSpinCount(WapiCriticalSection *section, guint32 spincount);
30 extern gboolean TryEnterCriticalSection(WapiCriticalSection *section);
31 extern void EnterCriticalSection(WapiCriticalSection *section);
32 extern void LeaveCriticalSection(WapiCriticalSection *section);
34 #endif /* _WAPI_CRITICAL_SECTIONS_H_ */