X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Fthreads.h;h=068a63a9c03da7988d34889b4e4d0ecf7ebaffab;hb=6542a873e5bb308d091aea3fff496fa6fc4a47d3;hp=58e82d5a3be10a1e686f7913fe4a842436c7c2a6;hpb=760a7ce27c43d3d34f006aee7c2a64058a0b364e;p=mono.git diff --git a/mono/io-layer/threads.h b/mono/io-layer/threads.h index 58e82d5a3be..068a63a9c03 100644 --- a/mono/io-layer/threads.h +++ b/mono/io-layer/threads.h @@ -18,6 +18,8 @@ #include #include +G_BEGIN_DECLS + #define TLS_MINIMUM_AVAILABLE 64 #define TLS_OUT_OF_INDEXES 0xFFFFFFFF @@ -36,25 +38,32 @@ #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3ff) typedef guint32 (*WapiThreadStart)(gpointer); +typedef guint32 (*WapiApcProc)(gpointer); extern gpointer CreateThread(WapiSecurityAttributes *security, guint32 stacksize, WapiThreadStart start, - gpointer param, guint32 create, guint32 *tid); -extern gpointer OpenThread (guint32 access, gboolean inherit, guint32 tid); + gpointer param, guint32 create, gsize *tid); /* NB tid is 32bit in MS API */ +extern gpointer OpenThread (guint32 access, gboolean inherit, gsize tid); /* NB tid is 32bit in MS API */ extern void ExitThread(guint32 exitcode) G_GNUC_NORETURN; extern gboolean GetExitCodeThread(gpointer handle, guint32 *exitcode); -extern guint32 GetCurrentThreadId(void); +extern gsize GetCurrentThreadId(void); /* NB return is 32bit in MS API */ extern gpointer GetCurrentThread(void); extern guint32 ResumeThread(gpointer handle); extern guint32 SuspendThread(gpointer handle); +extern guint32 mono_pthread_key_for_tls (guint32 idx); extern guint32 TlsAlloc(void); extern gboolean TlsFree(guint32 idx); extern gpointer TlsGetValue(guint32 idx); extern gboolean TlsSetValue(guint32 idx, gpointer value); extern void Sleep(guint32 ms); -extern void SleepEx(guint32 ms, gboolean); -extern gboolean BindIoCompletionCallback (gpointer handle, - WapiOverlappedCB callback, - guint64 flags); +extern guint32 SleepEx(guint32 ms, gboolean alertable); +extern guint32 QueueUserAPC (WapiApcProc apc_callback, gpointer thread_handle, + gpointer param); + +/* Kludge alert! Making this visible outside io-layer is broken, but I + * can't find any w32 call that will let me do this. + */ +extern void _wapi_thread_signal_self (guint32 exitstatus); +G_END_DECLS #endif /* _WAPI_THREADS_H_ */