Imported Upstream version 0.18.1.1
[platform/upstream/gettext.git] / gettext-tools / gnulib-lib / libxml / threads.in.h
1 /**
2  * Summary: interfaces for thread handling
3  * Description: set of generic threading related routines
4  *              should work with pthreads, Windows native or TLS threads
5  *
6  * Copy: See Copyright for the status of this software.
7  *
8  * Author: Daniel Veillard
9  */
10
11 #ifndef __XML_THREADS_H__
12 #define __XML_THREADS_H__
13
14 #include <libxml/xmlversion.h>
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
20 /*
21  * xmlMutex are a simple mutual exception locks.
22  */
23 typedef struct _xmlMutex xmlMutex;
24 typedef xmlMutex *xmlMutexPtr;
25
26 /*
27  * xmlRMutex are reentrant mutual exception locks.
28  */
29 typedef struct _xmlRMutex xmlRMutex;
30 typedef xmlRMutex *xmlRMutexPtr;
31
32 #ifdef __cplusplus
33 }
34 #endif
35 #include <libxml/globals.h>
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 XMLPUBFUN xmlMutexPtr XMLCALL           
40                         xmlNewMutex     (void);
41 XMLPUBFUN void XMLCALL                  
42                         xmlMutexLock    (xmlMutexPtr tok);
43 XMLPUBFUN void XMLCALL                  
44                         xmlMutexUnlock  (xmlMutexPtr tok);
45 XMLPUBFUN void XMLCALL                  
46                         xmlFreeMutex    (xmlMutexPtr tok);
47
48 XMLPUBFUN xmlRMutexPtr XMLCALL          
49                         xmlNewRMutex    (void);
50 XMLPUBFUN void XMLCALL                  
51                         xmlRMutexLock   (xmlRMutexPtr tok);
52 XMLPUBFUN void XMLCALL                  
53                         xmlRMutexUnlock (xmlRMutexPtr tok);
54 XMLPUBFUN void XMLCALL                  
55                         xmlFreeRMutex   (xmlRMutexPtr tok);
56
57 /*
58  * Library wide APIs.
59  */
60 XMLPUBFUN void XMLCALL                  
61                         xmlInitThreads  (void);
62 XMLPUBFUN void XMLCALL                  
63                         xmlLockLibrary  (void);
64 XMLPUBFUN void XMLCALL                  
65                         xmlUnlockLibrary(void);
66 XMLPUBFUN int XMLCALL                   
67                         xmlGetThreadId  (void);
68 XMLPUBFUN int XMLCALL                   
69                         xmlIsMainThread (void);
70 XMLPUBFUN void XMLCALL                  
71                         xmlCleanupThreads(void);
72 XMLPUBFUN xmlGlobalStatePtr XMLCALL     
73                         xmlGetGlobalState(void);
74
75 #ifdef __cplusplus
76 }
77 #endif
78
79
80 #endif /* __XML_THREADS_H__ */