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