1 #ifndef _WAPI_THREADS_H_
2 #define _WAPI_THREADS_H_
6 #include "mono/io-layer/handles.h"
7 #include "mono/io-layer/io.h"
8 #include "mono/io-layer/status.h"
9 #include "mono/io-layer/processes.h"
11 #define TLS_MINIMUM_AVAILABLE 64
12 #define TLS_OUT_OF_INDEXES 0xFFFFFFFF
14 #define STILL_ACTIVE STATUS_PENDING
17 typedef guint32 (*WapiThreadStart)(gpointer);
19 extern gpointer CreateThread(WapiSecurityAttributes *security,
20 guint32 stacksize, WapiThreadStart start,
21 gpointer param, guint32 create, guint32 *tid);
22 extern void ExitThread(guint32 exitcode) G_GNUC_NORETURN;
23 extern gboolean GetExitCodeThread(gpointer handle, guint32 *exitcode);
24 extern guint32 GetCurrentThreadId(void);
25 extern gpointer GetCurrentThread(void);
26 extern guint32 ResumeThread(gpointer handle);
27 extern guint32 SuspendThread(gpointer handle);
28 extern guint32 TlsAlloc(void);
29 extern gboolean TlsFree(guint32 idx);
30 extern gpointer TlsGetValue(guint32 idx);
31 extern gboolean TlsSetValue(guint32 idx, gpointer value);
32 extern void Sleep(guint32 ms);
33 extern void SleepEx(guint32 ms, gboolean);
35 #endif /* _WAPI_THREADS_H_ */