X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Fthreads.h;h=d2dbcbfaf1cd0944af16160cf53f03953d87ca74;hb=5d2973e5351e19d8172794a14380341ca07c6f25;hp=068a63a9c03da7988d34889b4e4d0ecf7ebaffab;hpb=9869ae24b88761ab261c4311e24f7383b4af3f02;p=mono.git diff --git a/mono/io-layer/threads.h b/mono/io-layer/threads.h index 068a63a9c03..d2dbcbfaf1c 100644 --- a/mono/io-layer/threads.h +++ b/mono/io-layer/threads.h @@ -20,50 +20,31 @@ G_BEGIN_DECLS -#define TLS_MINIMUM_AVAILABLE 64 -#define TLS_OUT_OF_INDEXES 0xFFFFFFFF - #define STILL_ACTIVE STATUS_PENDING - -#define THREAD_TERMINATE 0x0001 -#define THREAD_SUSPEND_RESUME 0x0002 -#define THREAD_GET_CONTEXT 0x0008 -#define THREAD_SET_CONTEXT 0x0010 -#define THREAD_SET_INFORMATION 0x0020 -#define THREAD_QUERY_INFORMATION 0x0040 -#define THREAD_SET_THREAD_TOKEN 0x0080 -#define THREAD_IMPERSONATE 0x0100 -#define THREAD_DIRECT_IMPERSONATION 0x0200 #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, 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 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 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); +void wapi_interrupt_thread (gpointer handle); +void wapi_clear_interruption (void); +gboolean wapi_thread_set_wait_handle (gpointer handle); +void wapi_thread_clear_wait_handle (gpointer handle); +void wapi_self_interrupt (void); + +gpointer wapi_prepare_interrupt_thread (gpointer thread_handle); +void wapi_finish_interrupt_thread (gpointer wait_handle); + +gpointer wapi_create_thread_handle (void); +void wapi_thread_handle_set_exited (gpointer handle, guint32 exitstatus); +void wapi_ref_thread_handle (gpointer handle); +gpointer wapi_get_current_thread_handle (void); + +char* wapi_current_thread_desc (void); G_END_DECLS #endif /* _WAPI_THREADS_H_ */