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