00001 00009 #ifndef __XML_THREADS_H__ 00010 #define __XML_THREADS_H__ 00011 00012 #include <libxml/xmlversion.h> 00013 00014 #ifdef __cplusplus 00015 extern "C" { 00016 #endif 00017 00018 /* 00019 * xmlMutex are a simple mutual exception locks. 00020 */ 00021 typedef struct _xmlMutex xmlMutex; 00022 typedef xmlMutex *xmlMutexPtr; 00023 00024 /* 00025 * xmlRMutex are reentrant mutual exception locks. 00026 */ 00027 typedef struct _xmlRMutex xmlRMutex; 00028 typedef xmlRMutex *xmlRMutexPtr; 00029 00030 #ifdef __cplusplus 00031 } 00032 #endif 00033 #include <libxml/globals.h> 00034 #ifdef __cplusplus 00035 extern "C" { 00036 #endif 00037 00038 XMLPUBFUN xmlMutexPtr XMLCALL 00039 xmlNewMutex (void); 00040 XMLPUBFUN void XMLCALL 00041 xmlMutexLock (xmlMutexPtr tok); 00042 XMLPUBFUN void XMLCALL 00043 xmlMutexUnlock (xmlMutexPtr tok); 00044 XMLPUBFUN void XMLCALL 00045 xmlFreeMutex (xmlMutexPtr tok); 00046 00047 XMLPUBFUN xmlRMutexPtr XMLCALL 00048 xmlNewRMutex (void); 00049 XMLPUBFUN void XMLCALL 00050 xmlRMutexLock (xmlRMutexPtr tok); 00051 XMLPUBFUN void XMLCALL 00052 xmlRMutexUnlock (xmlRMutexPtr tok); 00053 XMLPUBFUN void XMLCALL 00054 xmlFreeRMutex (xmlRMutexPtr tok); 00055 00056 /* 00057 * Library wide APIs. 00058 */ 00059 XMLPUBFUN void XMLCALL 00060 xmlInitThreads (void); 00061 XMLPUBFUN void XMLCALL 00062 xmlLockLibrary (void); 00063 XMLPUBFUN void XMLCALL 00064 xmlUnlockLibrary(void); 00065 XMLPUBFUN int XMLCALL 00066 xmlGetThreadId (void); 00067 XMLPUBFUN int XMLCALL 00068 xmlIsMainThread (void); 00069 XMLPUBFUN void XMLCALL 00070 xmlCleanupThreads(void); 00071 XMLPUBFUN xmlGlobalStatePtr XMLCALL 00072 xmlGetGlobalState(void); 00073 00074 #ifdef __cplusplus 00075 } 00076 #endif 00077 00078 00079 #endif /* __XML_THREADS_H__ */ 00080