xref: /aosp_15_r20/external/libxml2/include/libxml/threads.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /**
2*7c568831SAndroid Build Coastguard Worker  * Summary: interfaces for thread handling
3*7c568831SAndroid Build Coastguard Worker  * Description: set of generic threading related routines
4*7c568831SAndroid Build Coastguard Worker  *              should work with pthreads, Windows native or TLS threads
5*7c568831SAndroid Build Coastguard Worker  *
6*7c568831SAndroid Build Coastguard Worker  * Copy: See Copyright for the status of this software.
7*7c568831SAndroid Build Coastguard Worker  *
8*7c568831SAndroid Build Coastguard Worker  * Author: Daniel Veillard
9*7c568831SAndroid Build Coastguard Worker  */
10*7c568831SAndroid Build Coastguard Worker 
11*7c568831SAndroid Build Coastguard Worker #ifndef __XML_THREADS_H__
12*7c568831SAndroid Build Coastguard Worker #define __XML_THREADS_H__
13*7c568831SAndroid Build Coastguard Worker 
14*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h>
15*7c568831SAndroid Build Coastguard Worker 
16*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
17*7c568831SAndroid Build Coastguard Worker extern "C" {
18*7c568831SAndroid Build Coastguard Worker #endif
19*7c568831SAndroid Build Coastguard Worker 
20*7c568831SAndroid Build Coastguard Worker /*
21*7c568831SAndroid Build Coastguard Worker  * xmlMutex are a simple mutual exception locks.
22*7c568831SAndroid Build Coastguard Worker  */
23*7c568831SAndroid Build Coastguard Worker typedef struct _xmlMutex xmlMutex;
24*7c568831SAndroid Build Coastguard Worker typedef xmlMutex *xmlMutexPtr;
25*7c568831SAndroid Build Coastguard Worker 
26*7c568831SAndroid Build Coastguard Worker /*
27*7c568831SAndroid Build Coastguard Worker  * xmlRMutex are reentrant mutual exception locks.
28*7c568831SAndroid Build Coastguard Worker  */
29*7c568831SAndroid Build Coastguard Worker typedef struct _xmlRMutex xmlRMutex;
30*7c568831SAndroid Build Coastguard Worker typedef xmlRMutex *xmlRMutexPtr;
31*7c568831SAndroid Build Coastguard Worker 
32*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
33*7c568831SAndroid Build Coastguard Worker 			xmlCheckThreadLocalStorage(void);
34*7c568831SAndroid Build Coastguard Worker 
35*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlMutexPtr
36*7c568831SAndroid Build Coastguard Worker 			xmlNewMutex	(void);
37*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
38*7c568831SAndroid Build Coastguard Worker 			xmlMutexLock	(xmlMutexPtr tok);
39*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
40*7c568831SAndroid Build Coastguard Worker 			xmlMutexUnlock	(xmlMutexPtr tok);
41*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
42*7c568831SAndroid Build Coastguard Worker 			xmlFreeMutex	(xmlMutexPtr tok);
43*7c568831SAndroid Build Coastguard Worker 
44*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlRMutexPtr
45*7c568831SAndroid Build Coastguard Worker 			xmlNewRMutex	(void);
46*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
47*7c568831SAndroid Build Coastguard Worker 			xmlRMutexLock	(xmlRMutexPtr tok);
48*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
49*7c568831SAndroid Build Coastguard Worker 			xmlRMutexUnlock	(xmlRMutexPtr tok);
50*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
51*7c568831SAndroid Build Coastguard Worker 			xmlFreeRMutex	(xmlRMutexPtr tok);
52*7c568831SAndroid Build Coastguard Worker 
53*7c568831SAndroid Build Coastguard Worker /*
54*7c568831SAndroid Build Coastguard Worker  * Library wide APIs.
55*7c568831SAndroid Build Coastguard Worker  */
56*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
57*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
58*7c568831SAndroid Build Coastguard Worker 			xmlInitThreads	(void);
59*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
60*7c568831SAndroid Build Coastguard Worker 			xmlLockLibrary	(void);
61*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
62*7c568831SAndroid Build Coastguard Worker 			xmlUnlockLibrary(void);
63*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
64*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
65*7c568831SAndroid Build Coastguard Worker 			xmlGetThreadId	(void);
66*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
67*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int
68*7c568831SAndroid Build Coastguard Worker 			xmlIsMainThread	(void);
69*7c568831SAndroid Build Coastguard Worker XML_DEPRECATED
70*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void
71*7c568831SAndroid Build Coastguard Worker 			xmlCleanupThreads(void);
72*7c568831SAndroid Build Coastguard Worker 
73*7c568831SAndroid Build Coastguard Worker /** DOC_DISABLE */
74*7c568831SAndroid Build Coastguard Worker #if defined(LIBXML_THREAD_ENABLED) && defined(_WIN32) && \
75*7c568831SAndroid Build Coastguard Worker     defined(LIBXML_STATIC_FOR_DLL)
76*7c568831SAndroid Build Coastguard Worker int
77*7c568831SAndroid Build Coastguard Worker xmlDllMain(void *hinstDLL, unsigned long fdwReason,
78*7c568831SAndroid Build Coastguard Worker            void *lpvReserved);
79*7c568831SAndroid Build Coastguard Worker #endif
80*7c568831SAndroid Build Coastguard Worker /** DOC_ENABLE */
81*7c568831SAndroid Build Coastguard Worker 
82*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus
83*7c568831SAndroid Build Coastguard Worker }
84*7c568831SAndroid Build Coastguard Worker #endif
85*7c568831SAndroid Build Coastguard Worker 
86*7c568831SAndroid Build Coastguard Worker 
87*7c568831SAndroid Build Coastguard Worker #endif /* __XML_THREADS_H__ */
88