00001 /* 00002 * Summary: interface for all global variables of the library 00003 * Description: all the global variables and thread handling for 00004 * those variables is handled by this module. 00005 * 00006 * The bottom of this file is automatically generated by build_glob.py 00007 * based on the description file global.data 00008 * 00009 * Copy: See Copyright for the status of this software. 00010 * 00011 * Author: Gary Pennington <Gary.Pennington@uk.sun.com>, Daniel Veillard 00012 */ 00013 00014 #ifndef __XML_GLOBALS_H 00015 #define __XML_GLOBALS_H 00016 00017 #include <libxml/xmlversion.h> 00018 #include <libxml/parser.h> 00019 #include <libxml/xmlerror.h> 00020 #include <libxml/SAX.h> 00021 #include <libxml/SAX2.h> 00022 #include <libxml/xmlmemory.h> 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00028 XMLPUBFUN void XMLCALL xmlInitGlobals(void); 00029 XMLPUBFUN void XMLCALL xmlCleanupGlobals(void); 00030 00031 typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc); 00032 typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression); 00033 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc 00034 XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func); 00035 XMLPUBFUN xmlOutputBufferCreateFilenameFunc 00036 XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func); 00037 00038 /* 00039 * Externally global symbols which need to be protected for backwards 00040 * compatibility support. 00041 */ 00042 00043 #undef docbDefaultSAXHandler 00044 #undef htmlDefaultSAXHandler 00045 #undef oldXMLWDcompatibility 00046 #undef xmlBufferAllocScheme 00047 #undef xmlDefaultBufferSize 00048 #undef xmlDefaultSAXHandler 00049 #undef xmlDefaultSAXLocator 00050 #undef xmlDoValidityCheckingDefaultValue 00051 #undef xmlFree 00052 #undef xmlGenericError 00053 #undef xmlStructuredError 00054 #undef xmlGenericErrorContext 00055 #undef xmlGetWarningsDefaultValue 00056 #undef xmlIndentTreeOutput 00057 #undef xmlTreeIndentString 00058 #undef xmlKeepBlanksDefaultValue 00059 #undef xmlLineNumbersDefaultValue 00060 #undef xmlLoadExtDtdDefaultValue 00061 #undef xmlMalloc 00062 #undef xmlMallocAtomic 00063 #undef xmlMemStrdup 00064 #undef xmlParserDebugEntities 00065 #undef xmlParserVersion 00066 #undef xmlPedanticParserDefaultValue 00067 #undef xmlRealloc 00068 #undef xmlSaveNoEmptyTags 00069 #undef xmlSubstituteEntitiesDefaultValue 00070 #undef xmlRegisterNodeDefaultValue 00071 #undef xmlDeregisterNodeDefaultValue 00072 #undef xmlLastError 00073 #undef xmlParserInputBufferCreateFilenameValue 00074 #undef xmlOutputBufferCreateFilenameValue 00075 00076 typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node); 00077 typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node); 00078 00079 typedef struct _xmlGlobalState xmlGlobalState; 00080 typedef xmlGlobalState *xmlGlobalStatePtr; 00081 struct _xmlGlobalState 00082 { 00083 const char *xmlParserVersion; 00084 00085 xmlSAXLocator xmlDefaultSAXLocator; 00086 xmlSAXHandlerV1 xmlDefaultSAXHandler; 00087 xmlSAXHandlerV1 docbDefaultSAXHandler; 00088 xmlSAXHandlerV1 htmlDefaultSAXHandler; 00089 00090 xmlFreeFunc xmlFree; 00091 xmlMallocFunc xmlMalloc; 00092 xmlStrdupFunc xmlMemStrdup; 00093 xmlReallocFunc xmlRealloc; 00094 00095 xmlGenericErrorFunc xmlGenericError; 00096 xmlStructuredErrorFunc xmlStructuredError; 00097 void *xmlGenericErrorContext; 00098 00099 int oldXMLWDcompatibility; 00100 00101 xmlBufferAllocationScheme xmlBufferAllocScheme; 00102 int xmlDefaultBufferSize; 00103 00104 int xmlSubstituteEntitiesDefaultValue; 00105 int xmlDoValidityCheckingDefaultValue; 00106 int xmlGetWarningsDefaultValue; 00107 int xmlKeepBlanksDefaultValue; 00108 int xmlLineNumbersDefaultValue; 00109 int xmlLoadExtDtdDefaultValue; 00110 int xmlParserDebugEntities; 00111 int xmlPedanticParserDefaultValue; 00112 00113 int xmlSaveNoEmptyTags; 00114 int xmlIndentTreeOutput; 00115 const char *xmlTreeIndentString; 00116 00117 xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 00118 xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 00119 00120 xmlMallocFunc xmlMallocAtomic; 00121 xmlError xmlLastError; 00122 00123 xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 00124 xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 00125 }; 00126 00127 #ifdef __cplusplus 00128 } 00129 #endif 00130 #include <libxml/threads.h> 00131 #ifdef __cplusplus 00132 extern "C" { 00133 #endif 00134 00135 XMLPUBFUN void XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs); 00136 00137 XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler); 00138 00139 XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler); 00140 00141 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func); 00142 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func); 00143 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func); 00144 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func); 00145 00146 XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL 00147 xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func); 00148 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL 00149 xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func); 00150 00152 /* 00153 * In general the memory allocation entry points are not kept 00154 * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED 00155 * - xmlMalloc 00156 * - xmlMallocAtomic 00157 * - xmlRealloc 00158 * - xmlMemStrdup 00159 * - xmlFree 00160 */ 00161 00162 #ifdef LIBXML_THREAD_ALLOC_ENABLED 00163 #ifdef LIBXML_THREAD_ENABLED 00164 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void); 00165 #define xmlMalloc \ 00166 (*(__xmlMalloc())) 00167 #else 00168 XMLPUBVAR xmlMallocFunc xmlMalloc; 00169 #endif 00170 00171 #ifdef LIBXML_THREAD_ENABLED 00172 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void); 00173 #define xmlMallocAtomic \ 00174 (*(__xmlMallocAtomic())) 00175 #else 00176 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 00177 #endif 00178 00179 #ifdef LIBXML_THREAD_ENABLED 00180 XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void); 00181 #define xmlRealloc \ 00182 (*(__xmlRealloc())) 00183 #else 00184 XMLPUBVAR xmlReallocFunc xmlRealloc; 00185 #endif 00186 00187 #ifdef LIBXML_THREAD_ENABLED 00188 XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void); 00189 #define xmlFree \ 00190 (*(__xmlFree())) 00191 #else 00192 XMLPUBVAR xmlFreeFunc xmlFree; 00193 #endif 00194 00195 #ifdef LIBXML_THREAD_ENABLED 00196 XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void); 00197 #define xmlMemStrdup \ 00198 (*(__xmlMemStrdup())) 00199 #else 00200 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 00201 #endif 00202 00203 #else /* !LIBXML_THREAD_ALLOC_ENABLED */ 00204 XMLPUBVAR xmlMallocFunc xmlMalloc; 00205 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 00206 XMLPUBVAR xmlReallocFunc xmlRealloc; 00207 XMLPUBVAR xmlFreeFunc xmlFree; 00208 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 00209 #endif /* LIBXML_THREAD_ALLOC_ENABLED */ 00210 00211 #ifdef LIBXML_DOCB_ENABLED 00212 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void); 00213 #ifdef LIBXML_THREAD_ENABLED 00214 #define docbDefaultSAXHandler \ 00215 (*(__docbDefaultSAXHandler())) 00216 #else 00217 XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler; 00218 #endif 00219 #endif 00220 00221 #ifdef LIBXML_HTML_ENABLED 00222 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void); 00223 #ifdef LIBXML_THREAD_ENABLED 00224 #define htmlDefaultSAXHandler \ 00225 (*(__htmlDefaultSAXHandler())) 00226 #else 00227 XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler; 00228 #endif 00229 #endif 00230 00231 XMLPUBFUN xmlError * XMLCALL __xmlLastError(void); 00232 #ifdef LIBXML_THREAD_ENABLED 00233 #define xmlLastError \ 00234 (*(__xmlLastError())) 00235 #else 00236 XMLPUBVAR xmlError xmlLastError; 00237 #endif 00238 00239 /* 00240 * Everything starting from the line below is 00241 * Automatically generated by build_glob.py. 00242 * Do not modify the previous line. 00243 */ 00244 00245 00246 XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void); 00247 #ifdef LIBXML_THREAD_ENABLED 00248 #define oldXMLWDcompatibility \ 00249 (*(__oldXMLWDcompatibility())) 00250 #else 00251 XMLPUBVAR int oldXMLWDcompatibility; 00252 #endif 00253 00254 XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void); 00255 #ifdef LIBXML_THREAD_ENABLED 00256 #define xmlBufferAllocScheme \ 00257 (*(__xmlBufferAllocScheme())) 00258 #else 00259 XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme; 00260 #endif 00261 XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); 00262 00263 XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void); 00264 #ifdef LIBXML_THREAD_ENABLED 00265 #define xmlDefaultBufferSize \ 00266 (*(__xmlDefaultBufferSize())) 00267 #else 00268 XMLPUBVAR int xmlDefaultBufferSize; 00269 #endif 00270 XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v); 00271 00272 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void); 00273 #ifdef LIBXML_THREAD_ENABLED 00274 #define xmlDefaultSAXHandler \ 00275 (*(__xmlDefaultSAXHandler())) 00276 #else 00277 XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler; 00278 #endif 00279 00280 XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void); 00281 #ifdef LIBXML_THREAD_ENABLED 00282 #define xmlDefaultSAXLocator \ 00283 (*(__xmlDefaultSAXLocator())) 00284 #else 00285 XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator; 00286 #endif 00287 00288 XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void); 00289 #ifdef LIBXML_THREAD_ENABLED 00290 #define xmlDoValidityCheckingDefaultValue \ 00291 (*(__xmlDoValidityCheckingDefaultValue())) 00292 #else 00293 XMLPUBVAR int xmlDoValidityCheckingDefaultValue; 00294 #endif 00295 XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v); 00296 00297 XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void); 00298 #ifdef LIBXML_THREAD_ENABLED 00299 #define xmlGenericError \ 00300 (*(__xmlGenericError())) 00301 #else 00302 XMLPUBVAR xmlGenericErrorFunc xmlGenericError; 00303 #endif 00304 00305 XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void); 00306 #ifdef LIBXML_THREAD_ENABLED 00307 #define xmlStructuredError \ 00308 (*(__xmlStructuredError())) 00309 #else 00310 XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError; 00311 #endif 00312 00313 XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void); 00314 #ifdef LIBXML_THREAD_ENABLED 00315 #define xmlGenericErrorContext \ 00316 (*(__xmlGenericErrorContext())) 00317 #else 00318 XMLPUBVAR void * xmlGenericErrorContext; 00319 #endif 00320 00321 XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void); 00322 #ifdef LIBXML_THREAD_ENABLED 00323 #define xmlGetWarningsDefaultValue \ 00324 (*(__xmlGetWarningsDefaultValue())) 00325 #else 00326 XMLPUBVAR int xmlGetWarningsDefaultValue; 00327 #endif 00328 XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v); 00329 00330 XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void); 00331 #ifdef LIBXML_THREAD_ENABLED 00332 #define xmlIndentTreeOutput \ 00333 (*(__xmlIndentTreeOutput())) 00334 #else 00335 XMLPUBVAR int xmlIndentTreeOutput; 00336 #endif 00337 XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v); 00338 00339 XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void); 00340 #ifdef LIBXML_THREAD_ENABLED 00341 #define xmlTreeIndentString \ 00342 (*(__xmlTreeIndentString())) 00343 #else 00344 XMLPUBVAR const char * xmlTreeIndentString; 00345 #endif 00346 XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v); 00347 00348 XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void); 00349 #ifdef LIBXML_THREAD_ENABLED 00350 #define xmlKeepBlanksDefaultValue \ 00351 (*(__xmlKeepBlanksDefaultValue())) 00352 #else 00353 XMLPUBVAR int xmlKeepBlanksDefaultValue; 00354 #endif 00355 XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v); 00356 00357 XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void); 00358 #ifdef LIBXML_THREAD_ENABLED 00359 #define xmlLineNumbersDefaultValue \ 00360 (*(__xmlLineNumbersDefaultValue())) 00361 #else 00362 XMLPUBVAR int xmlLineNumbersDefaultValue; 00363 #endif 00364 XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v); 00365 00366 XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void); 00367 #ifdef LIBXML_THREAD_ENABLED 00368 #define xmlLoadExtDtdDefaultValue \ 00369 (*(__xmlLoadExtDtdDefaultValue())) 00370 #else 00371 XMLPUBVAR int xmlLoadExtDtdDefaultValue; 00372 #endif 00373 XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v); 00374 00375 XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void); 00376 #ifdef LIBXML_THREAD_ENABLED 00377 #define xmlParserDebugEntities \ 00378 (*(__xmlParserDebugEntities())) 00379 #else 00380 XMLPUBVAR int xmlParserDebugEntities; 00381 #endif 00382 XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v); 00383 00384 XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void); 00385 #ifdef LIBXML_THREAD_ENABLED 00386 #define xmlParserVersion \ 00387 (*(__xmlParserVersion())) 00388 #else 00389 XMLPUBVAR const char * xmlParserVersion; 00390 #endif 00391 00392 XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void); 00393 #ifdef LIBXML_THREAD_ENABLED 00394 #define xmlPedanticParserDefaultValue \ 00395 (*(__xmlPedanticParserDefaultValue())) 00396 #else 00397 XMLPUBVAR int xmlPedanticParserDefaultValue; 00398 #endif 00399 XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v); 00400 00401 XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void); 00402 #ifdef LIBXML_THREAD_ENABLED 00403 #define xmlSaveNoEmptyTags \ 00404 (*(__xmlSaveNoEmptyTags())) 00405 #else 00406 XMLPUBVAR int xmlSaveNoEmptyTags; 00407 #endif 00408 XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v); 00409 00410 XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void); 00411 #ifdef LIBXML_THREAD_ENABLED 00412 #define xmlSubstituteEntitiesDefaultValue \ 00413 (*(__xmlSubstituteEntitiesDefaultValue())) 00414 #else 00415 XMLPUBVAR int xmlSubstituteEntitiesDefaultValue; 00416 #endif 00417 XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v); 00418 00419 XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void); 00420 #ifdef LIBXML_THREAD_ENABLED 00421 #define xmlRegisterNodeDefaultValue \ 00422 (*(__xmlRegisterNodeDefaultValue())) 00423 #else 00424 XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 00425 #endif 00426 00427 XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void); 00428 #ifdef LIBXML_THREAD_ENABLED 00429 #define xmlDeregisterNodeDefaultValue \ 00430 (*(__xmlDeregisterNodeDefaultValue())) 00431 #else 00432 XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 00433 #endif 00434 00435 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void); 00436 #ifdef LIBXML_THREAD_ENABLED 00437 #define xmlParserInputBufferCreateFilenameValue \ 00438 (*(__xmlParserInputBufferCreateFilenameValue())) 00439 #else 00440 XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 00441 #endif 00442 00443 XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void); 00444 #ifdef LIBXML_THREAD_ENABLED 00445 #define xmlOutputBufferCreateFilenameValue \ 00446 (*(__xmlOutputBufferCreateFilenameValue())) 00447 #else 00448 XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 00449 #endif 00450 00451 #ifdef __cplusplus 00452 } 00453 #endif 00454 00455 #endif /* __XML_GLOBALS_H */