Moving BSTR conv to native code in SecureStringToBSTR.
[mono.git] / mono / io-layer / threads.h
1 /*
2  * threads.h:  Thread handles
3  *
4  * Author:
5  *      Dick Porter (dick@ximian.com)
6  *
7  * (C) 2002 Ximian, Inc.
8  */
9
10 #ifndef _WAPI_THREADS_H_
11 #define _WAPI_THREADS_H_
12
13 #include <glib.h>
14
15 #include <mono/io-layer/handles.h>
16 #include <mono/io-layer/io.h>
17 #include <mono/io-layer/status.h>
18 #include <mono/io-layer/processes.h>
19 #include <mono/io-layer/access.h>
20
21 G_BEGIN_DECLS
22
23 #define STILL_ACTIVE STATUS_PENDING
24
25 #define THREAD_ALL_ACCESS               (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3ff)
26
27 typedef guint32 (*WapiThreadStart)(gpointer);
28  
29 typedef enum {
30         THREAD_PRIORITY_LOWEST = -2,
31         THREAD_PRIORITY_BELOW_NORMAL = -1,
32         THREAD_PRIORITY_NORMAL = 0,
33         THREAD_PRIORITY_ABOVE_NORMAL = 1,
34         THREAD_PRIORITY_HIGHEST = 2
35 } WapiThreadPriority;
36
37 gpointer wapi_create_thread_handle (void);
38 void wapi_thread_handle_set_exited (gpointer handle, guint32 exitstatus);
39 void wapi_ref_thread_handle (gpointer handle);
40 gpointer wapi_get_current_thread_handle (void);
41
42 char *wapi_current_thread_desc (void);
43
44 extern gint32 GetThreadPriority (gpointer handle);
45 extern gboolean SetThreadPriority (gpointer handle, gint32 priority);
46
47 extern int wapi_thread_priority_to_posix_priority (WapiThreadPriority, int);
48 extern void wapi_init_thread_info_priority (gpointer, gint32);
49
50 G_END_DECLS
51 #endif /* _WAPI_THREADS_H_ */