1 /* 2 * Summary: interface for all global variables of the library 3 * Description: all the global variables and thread handling for 4 * those variables is handled by this module. 5 * 6 * The bottom of this file is automatically generated by build_glob.py 7 * based on the description file global.data 8 * 9 * Copy: See Copyright for the status of this software. 10 * 11 * Author: Gary Pennington <Gary.Pennington@uk.sun.com>, Daniel Veillard 12 */ 13 14 #ifndef __XML_GLOBALS_H 15 #define __XML_GLOBALS_H 16 17 #include <libxml/xmlversion.h> 18 #include <libxml/parser.h> 19 #include <libxml/xmlerror.h> 20 #include <libxml/SAX.h> 21 #include <libxml/SAX2.h> 22 #include <libxml/xmlmemory.h> 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 XMLPUBFUN void XMLCALL xmlInitGlobals(void); 29 XMLPUBFUN void XMLCALL xmlCleanupGlobals(void); 30 31 typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc); 32 typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression); 33 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc 34 XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func); 35 XMLPUBFUN xmlOutputBufferCreateFilenameFunc 36 XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func); 37 38 /* 39 * Externally global symbols which need to be protected for backwards 40 * compatibility support. 41 */ 42 43 #undef docbDefaultSAXHandler 44 #undef htmlDefaultSAXHandler 45 #undef oldXMLWDcompatibility 46 #undef xmlBufferAllocScheme 47 #undef xmlDefaultBufferSize 48 #undef xmlDefaultSAXHandler 49 #undef xmlDefaultSAXLocator 50 #undef xmlDoValidityCheckingDefaultValue 51 #undef xmlFree 52 #undef xmlGenericError 53 #undef xmlStructuredError 54 #undef xmlGenericErrorContext 55 #undef xmlGetWarningsDefaultValue 56 #undef xmlIndentTreeOutput 57 #undef xmlTreeIndentString 58 #undef xmlKeepBlanksDefaultValue 59 #undef xmlLineNumbersDefaultValue 60 #undef xmlLoadExtDtdDefaultValue 61 #undef xmlMalloc 62 #undef xmlMallocAtomic 63 #undef xmlMemStrdup 64 #undef xmlParserDebugEntities 65 #undef xmlParserVersion 66 #undef xmlPedanticParserDefaultValue 67 #undef xmlRealloc 68 #undef xmlSaveNoEmptyTags 69 #undef xmlSubstituteEntitiesDefaultValue 70 #undef xmlRegisterNodeDefaultValue 71 #undef xmlDeregisterNodeDefaultValue 72 #undef xmlLastError 73 #undef xmlParserInputBufferCreateFilenameValue 74 #undef xmlOutputBufferCreateFilenameValue 75 76 typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node); 77 typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node); 78 79 typedef struct _xmlGlobalState xmlGlobalState; 80 typedef xmlGlobalState *xmlGlobalStatePtr; 81 struct _xmlGlobalState 82 { 83 const char *xmlParserVersion; 84 85 xmlSAXLocator xmlDefaultSAXLocator; 86 xmlSAXHandlerV1 xmlDefaultSAXHandler; 87 xmlSAXHandlerV1 docbDefaultSAXHandler; 88 xmlSAXHandlerV1 htmlDefaultSAXHandler; 89 90 xmlFreeFunc xmlFree; 91 xmlMallocFunc xmlMalloc; 92 xmlStrdupFunc xmlMemStrdup; 93 xmlReallocFunc xmlRealloc; 94 95 xmlGenericErrorFunc xmlGenericError; 96 xmlStructuredErrorFunc xmlStructuredError; 97 void *xmlGenericErrorContext; 98 99 int oldXMLWDcompatibility; 100 101 xmlBufferAllocationScheme xmlBufferAllocScheme; 102 int xmlDefaultBufferSize; 103 104 int xmlSubstituteEntitiesDefaultValue; 105 int xmlDoValidityCheckingDefaultValue; 106 int xmlGetWarningsDefaultValue; 107 int xmlKeepBlanksDefaultValue; 108 int xmlLineNumbersDefaultValue; 109 int xmlLoadExtDtdDefaultValue; 110 int xmlParserDebugEntities; 111 int xmlPedanticParserDefaultValue; 112 113 int xmlSaveNoEmptyTags; 114 int xmlIndentTreeOutput; 115 const char *xmlTreeIndentString; 116 117 xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 118 xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 119 120 xmlMallocFunc xmlMallocAtomic; 121 xmlError xmlLastError; 122 123 xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 124 xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 125 }; 126 127 #ifdef __cplusplus 128 } 129 #endif 130 #include <libxml/threads.h> 131 #ifdef __cplusplus 132 extern "C" { 133 #endif 134 135 XMLPUBFUN void XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs); 136 137 XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler); 138 139 XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler); 140 141 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func); 142 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func); 143 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func); 144 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func); 145 146 XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL 147 xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func); 148 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL 149 xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func); 150 151 /** DOC_DISABLE */ 152 /* 153 * In general the memory allocation entry points are not kept 154 * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED 155 * - xmlMalloc 156 * - xmlMallocAtomic 157 * - xmlRealloc 158 * - xmlMemStrdup 159 * - xmlFree 160 */ 161 162 #ifdef LIBXML_THREAD_ALLOC_ENABLED 163 #ifdef LIBXML_THREAD_ENABLED 164 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void); 165 #define xmlMalloc \ 166 (*(__xmlMalloc())) 167 #else 168 XMLPUBVAR xmlMallocFunc xmlMalloc; 169 #endif 170 171 #ifdef LIBXML_THREAD_ENABLED 172 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void); 173 #define xmlMallocAtomic \ 174 (*(__xmlMallocAtomic())) 175 #else 176 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 177 #endif 178 179 #ifdef LIBXML_THREAD_ENABLED 180 XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void); 181 #define xmlRealloc \ 182 (*(__xmlRealloc())) 183 #else 184 XMLPUBVAR xmlReallocFunc xmlRealloc; 185 #endif 186 187 #ifdef LIBXML_THREAD_ENABLED 188 XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void); 189 #define xmlFree \ 190 (*(__xmlFree())) 191 #else 192 XMLPUBVAR xmlFreeFunc xmlFree; 193 #endif 194 195 #ifdef LIBXML_THREAD_ENABLED 196 XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void); 197 #define xmlMemStrdup \ 198 (*(__xmlMemStrdup())) 199 #else 200 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 201 #endif 202 203 #else /* !LIBXML_THREAD_ALLOC_ENABLED */ 204 XMLPUBVAR xmlMallocFunc xmlMalloc; 205 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 206 XMLPUBVAR xmlReallocFunc xmlRealloc; 207 XMLPUBVAR xmlFreeFunc xmlFree; 208 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 209 #endif /* LIBXML_THREAD_ALLOC_ENABLED */ 210 211 #ifdef LIBXML_DOCB_ENABLED 212 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void); 213 #ifdef LIBXML_THREAD_ENABLED 214 #define docbDefaultSAXHandler \ 215 (*(__docbDefaultSAXHandler())) 216 #else 217 XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler; 218 #endif 219 #endif 220 221 #ifdef LIBXML_HTML_ENABLED 222 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void); 223 #ifdef LIBXML_THREAD_ENABLED 224 #define htmlDefaultSAXHandler \ 225 (*(__htmlDefaultSAXHandler())) 226 #else 227 XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler; 228 #endif 229 #endif 230 231 XMLPUBFUN xmlError * XMLCALL __xmlLastError(void); 232 #ifdef LIBXML_THREAD_ENABLED 233 #define xmlLastError \ 234 (*(__xmlLastError())) 235 #else 236 XMLPUBVAR xmlError xmlLastError; 237 #endif 238 239 /* 240 * Everything starting from the line below is 241 * Automatically generated by build_glob.py. 242 * Do not modify the previous line. 243 */ 244 245 246 XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void); 247 #ifdef LIBXML_THREAD_ENABLED 248 #define oldXMLWDcompatibility \ 249 (*(__oldXMLWDcompatibility())) 250 #else 251 XMLPUBVAR int oldXMLWDcompatibility; 252 #endif 253 254 XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void); 255 #ifdef LIBXML_THREAD_ENABLED 256 #define xmlBufferAllocScheme \ 257 (*(__xmlBufferAllocScheme())) 258 #else 259 XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme; 260 #endif 261 XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); 262 263 XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void); 264 #ifdef LIBXML_THREAD_ENABLED 265 #define xmlDefaultBufferSize \ 266 (*(__xmlDefaultBufferSize())) 267 #else 268 XMLPUBVAR int xmlDefaultBufferSize; 269 #endif 270 XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v); 271 272 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void); 273 #ifdef LIBXML_THREAD_ENABLED 274 #define xmlDefaultSAXHandler \ 275 (*(__xmlDefaultSAXHandler())) 276 #else 277 XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler; 278 #endif 279 280 XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void); 281 #ifdef LIBXML_THREAD_ENABLED 282 #define xmlDefaultSAXLocator \ 283 (*(__xmlDefaultSAXLocator())) 284 #else 285 XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator; 286 #endif 287 288 XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void); 289 #ifdef LIBXML_THREAD_ENABLED 290 #define xmlDoValidityCheckingDefaultValue \ 291 (*(__xmlDoValidityCheckingDefaultValue())) 292 #else 293 XMLPUBVAR int xmlDoValidityCheckingDefaultValue; 294 #endif 295 XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v); 296 297 XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void); 298 #ifdef LIBXML_THREAD_ENABLED 299 #define xmlGenericError \ 300 (*(__xmlGenericError())) 301 #else 302 XMLPUBVAR xmlGenericErrorFunc xmlGenericError; 303 #endif 304 305 XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void); 306 #ifdef LIBXML_THREAD_ENABLED 307 #define xmlStructuredError \ 308 (*(__xmlStructuredError())) 309 #else 310 XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError; 311 #endif 312 313 XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void); 314 #ifdef LIBXML_THREAD_ENABLED 315 #define xmlGenericErrorContext \ 316 (*(__xmlGenericErrorContext())) 317 #else 318 XMLPUBVAR void * xmlGenericErrorContext; 319 #endif 320 321 XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void); 322 #ifdef LIBXML_THREAD_ENABLED 323 #define xmlGetWarningsDefaultValue \ 324 (*(__xmlGetWarningsDefaultValue())) 325 #else 326 XMLPUBVAR int xmlGetWarningsDefaultValue; 327 #endif 328 XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v); 329 330 XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void); 331 #ifdef LIBXML_THREAD_ENABLED 332 #define xmlIndentTreeOutput \ 333 (*(__xmlIndentTreeOutput())) 334 #else 335 XMLPUBVAR int xmlIndentTreeOutput; 336 #endif 337 XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v); 338 339 XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void); 340 #ifdef LIBXML_THREAD_ENABLED 341 #define xmlTreeIndentString \ 342 (*(__xmlTreeIndentString())) 343 #else 344 XMLPUBVAR const char * xmlTreeIndentString; 345 #endif 346 XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v); 347 348 XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void); 349 #ifdef LIBXML_THREAD_ENABLED 350 #define xmlKeepBlanksDefaultValue \ 351 (*(__xmlKeepBlanksDefaultValue())) 352 #else 353 XMLPUBVAR int xmlKeepBlanksDefaultValue; 354 #endif 355 XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v); 356 357 XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void); 358 #ifdef LIBXML_THREAD_ENABLED 359 #define xmlLineNumbersDefaultValue \ 360 (*(__xmlLineNumbersDefaultValue())) 361 #else 362 XMLPUBVAR int xmlLineNumbersDefaultValue; 363 #endif 364 XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v); 365 366 XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void); 367 #ifdef LIBXML_THREAD_ENABLED 368 #define xmlLoadExtDtdDefaultValue \ 369 (*(__xmlLoadExtDtdDefaultValue())) 370 #else 371 XMLPUBVAR int xmlLoadExtDtdDefaultValue; 372 #endif 373 XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v); 374 375 XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void); 376 #ifdef LIBXML_THREAD_ENABLED 377 #define xmlParserDebugEntities \ 378 (*(__xmlParserDebugEntities())) 379 #else 380 XMLPUBVAR int xmlParserDebugEntities; 381 #endif 382 XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v); 383 384 XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void); 385 #ifdef LIBXML_THREAD_ENABLED 386 #define xmlParserVersion \ 387 (*(__xmlParserVersion())) 388 #else 389 XMLPUBVAR const char * xmlParserVersion; 390 #endif 391 392 XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void); 393 #ifdef LIBXML_THREAD_ENABLED 394 #define xmlPedanticParserDefaultValue \ 395 (*(__xmlPedanticParserDefaultValue())) 396 #else 397 XMLPUBVAR int xmlPedanticParserDefaultValue; 398 #endif 399 XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v); 400 401 XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void); 402 #ifdef LIBXML_THREAD_ENABLED 403 #define xmlSaveNoEmptyTags \ 404 (*(__xmlSaveNoEmptyTags())) 405 #else 406 XMLPUBVAR int xmlSaveNoEmptyTags; 407 #endif 408 XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v); 409 410 XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void); 411 #ifdef LIBXML_THREAD_ENABLED 412 #define xmlSubstituteEntitiesDefaultValue \ 413 (*(__xmlSubstituteEntitiesDefaultValue())) 414 #else 415 XMLPUBVAR int xmlSubstituteEntitiesDefaultValue; 416 #endif 417 XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v); 418 419 XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void); 420 #ifdef LIBXML_THREAD_ENABLED 421 #define xmlRegisterNodeDefaultValue \ 422 (*(__xmlRegisterNodeDefaultValue())) 423 #else 424 XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 425 #endif 426 427 XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void); 428 #ifdef LIBXML_THREAD_ENABLED 429 #define xmlDeregisterNodeDefaultValue \ 430 (*(__xmlDeregisterNodeDefaultValue())) 431 #else 432 XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 433 #endif 434 435 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void); 436 #ifdef LIBXML_THREAD_ENABLED 437 #define xmlParserInputBufferCreateFilenameValue \ 438 (*(__xmlParserInputBufferCreateFilenameValue())) 439 #else 440 XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 441 #endif 442 443 XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void); 444 #ifdef LIBXML_THREAD_ENABLED 445 #define xmlOutputBufferCreateFilenameValue \ 446 (*(__xmlOutputBufferCreateFilenameValue())) 447 #else 448 XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 449 #endif 450 451 #ifdef __cplusplus 452 } 453 #endif 454 455 #endif /* __XML_GLOBALS_H */ 456