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 (at) 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 /** 32 * xmlParserInputBufferCreateFilenameFunc: 33 * @URI: the URI to read from 34 * @enc: the requested source encoding 35 * 36 * Signature for the function doing the lookup for a suitable input method 37 * corresponding to an URI. 38 * 39 * Returns the new xmlParserInputBufferPtr in case of success or NULL if no 40 * method was found. 41 */ 42 typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc); 43 44 /** 45 * xmlOutputBufferCreateFilenameFunc: 46 * @URI: the URI to write to 47 * @enc: the requested target encoding 48 * 49 * Signature for the function doing the lookup for a suitable output method 50 * corresponding to an URI. 51 * 52 * Returns the new xmlOutputBufferPtr in case of success or NULL if no 53 * method was found. 54 */ 55 typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression); 56 57 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc 58 XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func); 59 XMLPUBFUN xmlOutputBufferCreateFilenameFunc 60 XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func); 61 62 /* 63 * Externally global symbols which need to be protected for backwards 64 * compatibility support. 65 */ 66 67 #undef docbDefaultSAXHandler 68 #undef htmlDefaultSAXHandler 69 #undef oldXMLWDcompatibility 70 #undef xmlBufferAllocScheme 71 #undef xmlDefaultBufferSize 72 #undef xmlDefaultSAXHandler 73 #undef xmlDefaultSAXLocator 74 #undef xmlDoValidityCheckingDefaultValue 75 #undef xmlFree 76 #undef xmlGenericError 77 #undef xmlStructuredError 78 #undef xmlGenericErrorContext 79 #undef xmlStructuredErrorContext 80 #undef xmlGetWarningsDefaultValue 81 #undef xmlIndentTreeOutput 82 #undef xmlTreeIndentString 83 #undef xmlKeepBlanksDefaultValue 84 #undef xmlLineNumbersDefaultValue 85 #undef xmlLoadExtDtdDefaultValue 86 #undef xmlMalloc 87 #undef xmlMallocAtomic 88 #undef xmlMemStrdup 89 #undef xmlParserDebugEntities 90 #undef xmlParserVersion 91 #undef xmlPedanticParserDefaultValue 92 #undef xmlRealloc 93 #undef xmlSaveNoEmptyTags 94 #undef xmlSubstituteEntitiesDefaultValue 95 #undef xmlRegisterNodeDefaultValue 96 #undef xmlDeregisterNodeDefaultValue 97 #undef xmlLastError 98 #undef xmlParserInputBufferCreateFilenameValue 99 #undef xmlOutputBufferCreateFilenameValue 100 101 /** 102 * xmlRegisterNodeFunc: 103 * @node: the current node 104 * 105 * Signature for the registration callback of a created node 106 */ 107 typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node); 108 /** 109 * xmlDeregisterNodeFunc: 110 * @node: the current node 111 * 112 * Signature for the deregistration callback of a discarded node 113 */ 114 typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node); 115 116 typedef struct _xmlGlobalState xmlGlobalState; 117 typedef xmlGlobalState *xmlGlobalStatePtr; 118 struct _xmlGlobalState 119 { 120 const char *xmlParserVersion; 121 122 xmlSAXLocator xmlDefaultSAXLocator; 123 xmlSAXHandlerV1 xmlDefaultSAXHandler; 124 xmlSAXHandlerV1 docbDefaultSAXHandler; 125 xmlSAXHandlerV1 htmlDefaultSAXHandler; 126 127 xmlFreeFunc xmlFree; 128 xmlMallocFunc xmlMalloc; 129 xmlStrdupFunc xmlMemStrdup; 130 xmlReallocFunc xmlRealloc; 131 132 xmlGenericErrorFunc xmlGenericError; 133 xmlStructuredErrorFunc xmlStructuredError; 134 void *xmlGenericErrorContext; 135 136 int oldXMLWDcompatibility; 137 138 xmlBufferAllocationScheme xmlBufferAllocScheme; 139 int xmlDefaultBufferSize; 140 141 int xmlSubstituteEntitiesDefaultValue; 142 int xmlDoValidityCheckingDefaultValue; 143 int xmlGetWarningsDefaultValue; 144 int xmlKeepBlanksDefaultValue; 145 int xmlLineNumbersDefaultValue; 146 int xmlLoadExtDtdDefaultValue; 147 int xmlParserDebugEntities; 148 int xmlPedanticParserDefaultValue; 149 150 int xmlSaveNoEmptyTags; 151 int xmlIndentTreeOutput; 152 const char *xmlTreeIndentString; 153 154 xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 155 xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 156 157 xmlMallocFunc xmlMallocAtomic; 158 xmlError xmlLastError; 159 160 xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 161 xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 162 163 void *xmlStructuredErrorContext; 164 }; 165 166 #ifdef __cplusplus 167 } 168 #endif 169 #include <libxml/threads.h> 170 #ifdef __cplusplus 171 extern "C" { 172 #endif 173 174 XMLPUBFUN void XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs); 175 176 XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler); 177 178 XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler); 179 180 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func); 181 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func); 182 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func); 183 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func); 184 185 XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL 186 xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func); 187 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL 188 xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func); 189 190 /** DOC_DISABLE */ 191 /* 192 * In general the memory allocation entry points are not kept 193 * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED 194 * - xmlMalloc 195 * - xmlMallocAtomic 196 * - xmlRealloc 197 * - xmlMemStrdup 198 * - xmlFree 199 */ 200 201 #ifdef LIBXML_THREAD_ALLOC_ENABLED 202 #ifdef LIBXML_THREAD_ENABLED 203 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void); 204 #define xmlMalloc \ 205 (*(__xmlMalloc())) 206 #else 207 XMLPUBVAR xmlMallocFunc xmlMalloc; 208 #endif 209 210 #ifdef LIBXML_THREAD_ENABLED 211 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void); 212 #define xmlMallocAtomic \ 213 (*(__xmlMallocAtomic())) 214 #else 215 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 216 #endif 217 218 #ifdef LIBXML_THREAD_ENABLED 219 XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void); 220 #define xmlRealloc \ 221 (*(__xmlRealloc())) 222 #else 223 XMLPUBVAR xmlReallocFunc xmlRealloc; 224 #endif 225 226 #ifdef LIBXML_THREAD_ENABLED 227 XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void); 228 #define xmlFree \ 229 (*(__xmlFree())) 230 #else 231 XMLPUBVAR xmlFreeFunc xmlFree; 232 #endif 233 234 #ifdef LIBXML_THREAD_ENABLED 235 XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void); 236 #define xmlMemStrdup \ 237 (*(__xmlMemStrdup())) 238 #else 239 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 240 #endif 241 242 #else /* !LIBXML_THREAD_ALLOC_ENABLED */ 243 XMLPUBVAR xmlMallocFunc xmlMalloc; 244 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 245 XMLPUBVAR xmlReallocFunc xmlRealloc; 246 XMLPUBVAR xmlFreeFunc xmlFree; 247 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 248 #endif /* LIBXML_THREAD_ALLOC_ENABLED */ 249 250 #ifdef LIBXML_DOCB_ENABLED 251 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void); 252 #ifdef LIBXML_THREAD_ENABLED 253 #define docbDefaultSAXHandler \ 254 (*(__docbDefaultSAXHandler())) 255 #else 256 XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler; 257 #endif 258 #endif 259 260 #ifdef LIBXML_HTML_ENABLED 261 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void); 262 #ifdef LIBXML_THREAD_ENABLED 263 #define htmlDefaultSAXHandler \ 264 (*(__htmlDefaultSAXHandler())) 265 #else 266 XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler; 267 #endif 268 #endif 269 270 XMLPUBFUN xmlError * XMLCALL __xmlLastError(void); 271 #ifdef LIBXML_THREAD_ENABLED 272 #define xmlLastError \ 273 (*(__xmlLastError())) 274 #else 275 XMLPUBVAR xmlError xmlLastError; 276 #endif 277 278 /* 279 * Everything starting from the line below is 280 * Automatically generated by build_glob.py. 281 * Do not modify the previous line. 282 */ 283 284 285 XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void); 286 #ifdef LIBXML_THREAD_ENABLED 287 #define oldXMLWDcompatibility \ 288 (*(__oldXMLWDcompatibility())) 289 #else 290 XMLPUBVAR int oldXMLWDcompatibility; 291 #endif 292 293 XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void); 294 #ifdef LIBXML_THREAD_ENABLED 295 #define xmlBufferAllocScheme \ 296 (*(__xmlBufferAllocScheme())) 297 #else 298 XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme; 299 #endif 300 XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); 301 302 XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void); 303 #ifdef LIBXML_THREAD_ENABLED 304 #define xmlDefaultBufferSize \ 305 (*(__xmlDefaultBufferSize())) 306 #else 307 XMLPUBVAR int xmlDefaultBufferSize; 308 #endif 309 XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v); 310 311 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void); 312 #ifdef LIBXML_THREAD_ENABLED 313 #define xmlDefaultSAXHandler \ 314 (*(__xmlDefaultSAXHandler())) 315 #else 316 XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler; 317 #endif 318 319 XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void); 320 #ifdef LIBXML_THREAD_ENABLED 321 #define xmlDefaultSAXLocator \ 322 (*(__xmlDefaultSAXLocator())) 323 #else 324 XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator; 325 #endif 326 327 XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void); 328 #ifdef LIBXML_THREAD_ENABLED 329 #define xmlDoValidityCheckingDefaultValue \ 330 (*(__xmlDoValidityCheckingDefaultValue())) 331 #else 332 XMLPUBVAR int xmlDoValidityCheckingDefaultValue; 333 #endif 334 XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v); 335 336 XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void); 337 #ifdef LIBXML_THREAD_ENABLED 338 #define xmlGenericError \ 339 (*(__xmlGenericError())) 340 #else 341 XMLPUBVAR xmlGenericErrorFunc xmlGenericError; 342 #endif 343 344 XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void); 345 #ifdef LIBXML_THREAD_ENABLED 346 #define xmlStructuredError \ 347 (*(__xmlStructuredError())) 348 #else 349 XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError; 350 #endif 351 352 XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void); 353 #ifdef LIBXML_THREAD_ENABLED 354 #define xmlGenericErrorContext \ 355 (*(__xmlGenericErrorContext())) 356 #else 357 XMLPUBVAR void * xmlGenericErrorContext; 358 #endif 359 360 XMLPUBFUN void * * XMLCALL __xmlStructuredErrorContext(void); 361 #ifdef LIBXML_THREAD_ENABLED 362 #define xmlStructuredErrorContext \ 363 (*(__xmlStructuredErrorContext())) 364 #else 365 XMLPUBVAR void * xmlStructuredErrorContext; 366 #endif 367 368 XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void); 369 #ifdef LIBXML_THREAD_ENABLED 370 #define xmlGetWarningsDefaultValue \ 371 (*(__xmlGetWarningsDefaultValue())) 372 #else 373 XMLPUBVAR int xmlGetWarningsDefaultValue; 374 #endif 375 XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v); 376 377 XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void); 378 #ifdef LIBXML_THREAD_ENABLED 379 #define xmlIndentTreeOutput \ 380 (*(__xmlIndentTreeOutput())) 381 #else 382 XMLPUBVAR int xmlIndentTreeOutput; 383 #endif 384 XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v); 385 386 XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void); 387 #ifdef LIBXML_THREAD_ENABLED 388 #define xmlTreeIndentString \ 389 (*(__xmlTreeIndentString())) 390 #else 391 XMLPUBVAR const char * xmlTreeIndentString; 392 #endif 393 XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v); 394 395 XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void); 396 #ifdef LIBXML_THREAD_ENABLED 397 #define xmlKeepBlanksDefaultValue \ 398 (*(__xmlKeepBlanksDefaultValue())) 399 #else 400 XMLPUBVAR int xmlKeepBlanksDefaultValue; 401 #endif 402 XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v); 403 404 XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void); 405 #ifdef LIBXML_THREAD_ENABLED 406 #define xmlLineNumbersDefaultValue \ 407 (*(__xmlLineNumbersDefaultValue())) 408 #else 409 XMLPUBVAR int xmlLineNumbersDefaultValue; 410 #endif 411 XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v); 412 413 XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void); 414 #ifdef LIBXML_THREAD_ENABLED 415 #define xmlLoadExtDtdDefaultValue \ 416 (*(__xmlLoadExtDtdDefaultValue())) 417 #else 418 XMLPUBVAR int xmlLoadExtDtdDefaultValue; 419 #endif 420 XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v); 421 422 XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void); 423 #ifdef LIBXML_THREAD_ENABLED 424 #define xmlParserDebugEntities \ 425 (*(__xmlParserDebugEntities())) 426 #else 427 XMLPUBVAR int xmlParserDebugEntities; 428 #endif 429 XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v); 430 431 XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void); 432 #ifdef LIBXML_THREAD_ENABLED 433 #define xmlParserVersion \ 434 (*(__xmlParserVersion())) 435 #else 436 XMLPUBVAR const char * xmlParserVersion; 437 #endif 438 439 XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void); 440 #ifdef LIBXML_THREAD_ENABLED 441 #define xmlPedanticParserDefaultValue \ 442 (*(__xmlPedanticParserDefaultValue())) 443 #else 444 XMLPUBVAR int xmlPedanticParserDefaultValue; 445 #endif 446 XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v); 447 448 XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void); 449 #ifdef LIBXML_THREAD_ENABLED 450 #define xmlSaveNoEmptyTags \ 451 (*(__xmlSaveNoEmptyTags())) 452 #else 453 XMLPUBVAR int xmlSaveNoEmptyTags; 454 #endif 455 XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v); 456 457 XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void); 458 #ifdef LIBXML_THREAD_ENABLED 459 #define xmlSubstituteEntitiesDefaultValue \ 460 (*(__xmlSubstituteEntitiesDefaultValue())) 461 #else 462 XMLPUBVAR int xmlSubstituteEntitiesDefaultValue; 463 #endif 464 XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v); 465 466 XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void); 467 #ifdef LIBXML_THREAD_ENABLED 468 #define xmlRegisterNodeDefaultValue \ 469 (*(__xmlRegisterNodeDefaultValue())) 470 #else 471 XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 472 #endif 473 474 XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void); 475 #ifdef LIBXML_THREAD_ENABLED 476 #define xmlDeregisterNodeDefaultValue \ 477 (*(__xmlDeregisterNodeDefaultValue())) 478 #else 479 XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 480 #endif 481 482 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void); 483 #ifdef LIBXML_THREAD_ENABLED 484 #define xmlParserInputBufferCreateFilenameValue \ 485 (*(__xmlParserInputBufferCreateFilenameValue())) 486 #else 487 XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 488 #endif 489 490 XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void); 491 #ifdef LIBXML_THREAD_ENABLED 492 #define xmlOutputBufferCreateFilenameValue \ 493 (*(__xmlOutputBufferCreateFilenameValue())) 494 #else 495 XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 496 #endif 497 498 #ifdef __cplusplus 499 } 500 #endif 501 502 #endif /* __XML_GLOBALS_H */ 503