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 XMLCALL xmlInitGlobals(void); 29 XML_DEPRECATED 30 XMLPUBFUN void XMLCALL 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 XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func); 64 XMLPUBFUN xmlOutputBufferCreateFilenameFunc 65 XMLCALL 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 XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs); 179 180 XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler); 181 182 XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler); 183 184 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func); 185 XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func); 186 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func); 187 XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func); 188 189 XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL 190 xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func); 191 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL 192 xmlThrDefParserInputBufferCreateFilenameDefault( 193 xmlParserInputBufferCreateFilenameFunc func); 194 195 /** DOC_DISABLE */ 196 /* 197 * In general the memory allocation entry points are not kept 198 * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED 199 * - xmlMalloc 200 * - xmlMallocAtomic 201 * - xmlRealloc 202 * - xmlMemStrdup 203 * - xmlFree 204 */ 205 206 #ifdef LIBXML_THREAD_ALLOC_ENABLED 207 #ifdef LIBXML_THREAD_ENABLED 208 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void); 209 #define xmlMalloc \ 210 (*(__xmlMalloc())) 211 #else 212 XMLPUBVAR xmlMallocFunc xmlMalloc; 213 #endif 214 215 #ifdef LIBXML_THREAD_ENABLED 216 XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void); 217 #define xmlMallocAtomic \ 218 (*(__xmlMallocAtomic())) 219 #else 220 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 221 #endif 222 223 #ifdef LIBXML_THREAD_ENABLED 224 XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void); 225 #define xmlRealloc \ 226 (*(__xmlRealloc())) 227 #else 228 XMLPUBVAR xmlReallocFunc xmlRealloc; 229 #endif 230 231 #ifdef LIBXML_THREAD_ENABLED 232 XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void); 233 #define xmlFree \ 234 (*(__xmlFree())) 235 #else 236 XMLPUBVAR xmlFreeFunc xmlFree; 237 #endif 238 239 #ifdef LIBXML_THREAD_ENABLED 240 XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void); 241 #define xmlMemStrdup \ 242 (*(__xmlMemStrdup())) 243 #else 244 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 245 #endif 246 247 #else /* !LIBXML_THREAD_ALLOC_ENABLED */ 248 XMLPUBVAR xmlMallocFunc xmlMalloc; 249 XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 250 XMLPUBVAR xmlReallocFunc xmlRealloc; 251 XMLPUBVAR xmlFreeFunc xmlFree; 252 XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 253 #endif /* LIBXML_THREAD_ALLOC_ENABLED */ 254 255 #ifdef LIBXML_HTML_ENABLED 256 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void); 257 #ifdef LIBXML_THREAD_ENABLED 258 #define htmlDefaultSAXHandler \ 259 (*(__htmlDefaultSAXHandler())) 260 #else 261 XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler; 262 #endif 263 #endif 264 265 XMLPUBFUN xmlError * XMLCALL __xmlLastError(void); 266 #ifdef LIBXML_THREAD_ENABLED 267 #define xmlLastError \ 268 (*(__xmlLastError())) 269 #else 270 XMLPUBVAR xmlError xmlLastError; 271 #endif 272 273 /* 274 * Everything starting from the line below is 275 * Automatically generated by build_glob.py. 276 * Do not modify the previous line. 277 */ 278 279 280 XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void); 281 #ifdef LIBXML_THREAD_ENABLED 282 #define oldXMLWDcompatibility \ 283 (*(__oldXMLWDcompatibility())) 284 #else 285 XMLPUBVAR int oldXMLWDcompatibility; 286 #endif 287 288 XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void); 289 #ifdef LIBXML_THREAD_ENABLED 290 #define xmlBufferAllocScheme \ 291 (*(__xmlBufferAllocScheme())) 292 #else 293 XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme; 294 #endif 295 XMLPUBFUN xmlBufferAllocationScheme XMLCALL 296 xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); 297 298 XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void); 299 #ifdef LIBXML_THREAD_ENABLED 300 #define xmlDefaultBufferSize \ 301 (*(__xmlDefaultBufferSize())) 302 #else 303 XMLPUBVAR int xmlDefaultBufferSize; 304 #endif 305 XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v); 306 307 XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void); 308 #ifdef LIBXML_THREAD_ENABLED 309 #define xmlDefaultSAXHandler \ 310 (*(__xmlDefaultSAXHandler())) 311 #else 312 XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler; 313 #endif 314 315 XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void); 316 #ifdef LIBXML_THREAD_ENABLED 317 #define xmlDefaultSAXLocator \ 318 (*(__xmlDefaultSAXLocator())) 319 #else 320 XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator; 321 #endif 322 323 XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void); 324 #ifdef LIBXML_THREAD_ENABLED 325 #define xmlDoValidityCheckingDefaultValue \ 326 (*(__xmlDoValidityCheckingDefaultValue())) 327 #else 328 XMLPUBVAR int xmlDoValidityCheckingDefaultValue; 329 #endif 330 XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v); 331 332 XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void); 333 #ifdef LIBXML_THREAD_ENABLED 334 #define xmlGenericError \ 335 (*(__xmlGenericError())) 336 #else 337 XMLPUBVAR xmlGenericErrorFunc xmlGenericError; 338 #endif 339 340 XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void); 341 #ifdef LIBXML_THREAD_ENABLED 342 #define xmlStructuredError \ 343 (*(__xmlStructuredError())) 344 #else 345 XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError; 346 #endif 347 348 XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void); 349 #ifdef LIBXML_THREAD_ENABLED 350 #define xmlGenericErrorContext \ 351 (*(__xmlGenericErrorContext())) 352 #else 353 XMLPUBVAR void * xmlGenericErrorContext; 354 #endif 355 356 XMLPUBFUN void * * XMLCALL __xmlStructuredErrorContext(void); 357 #ifdef LIBXML_THREAD_ENABLED 358 #define xmlStructuredErrorContext \ 359 (*(__xmlStructuredErrorContext())) 360 #else 361 XMLPUBVAR void * xmlStructuredErrorContext; 362 #endif 363 364 XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void); 365 #ifdef LIBXML_THREAD_ENABLED 366 #define xmlGetWarningsDefaultValue \ 367 (*(__xmlGetWarningsDefaultValue())) 368 #else 369 XMLPUBVAR int xmlGetWarningsDefaultValue; 370 #endif 371 XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v); 372 373 XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void); 374 #ifdef LIBXML_THREAD_ENABLED 375 #define xmlIndentTreeOutput \ 376 (*(__xmlIndentTreeOutput())) 377 #else 378 XMLPUBVAR int xmlIndentTreeOutput; 379 #endif 380 XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v); 381 382 XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void); 383 #ifdef LIBXML_THREAD_ENABLED 384 #define xmlTreeIndentString \ 385 (*(__xmlTreeIndentString())) 386 #else 387 XMLPUBVAR const char * xmlTreeIndentString; 388 #endif 389 XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v); 390 391 XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void); 392 #ifdef LIBXML_THREAD_ENABLED 393 #define xmlKeepBlanksDefaultValue \ 394 (*(__xmlKeepBlanksDefaultValue())) 395 #else 396 XMLPUBVAR int xmlKeepBlanksDefaultValue; 397 #endif 398 XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v); 399 400 XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void); 401 #ifdef LIBXML_THREAD_ENABLED 402 #define xmlLineNumbersDefaultValue \ 403 (*(__xmlLineNumbersDefaultValue())) 404 #else 405 XMLPUBVAR int xmlLineNumbersDefaultValue; 406 #endif 407 XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v); 408 409 XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void); 410 #ifdef LIBXML_THREAD_ENABLED 411 #define xmlLoadExtDtdDefaultValue \ 412 (*(__xmlLoadExtDtdDefaultValue())) 413 #else 414 XMLPUBVAR int xmlLoadExtDtdDefaultValue; 415 #endif 416 XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v); 417 418 XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void); 419 #ifdef LIBXML_THREAD_ENABLED 420 #define xmlParserDebugEntities \ 421 (*(__xmlParserDebugEntities())) 422 #else 423 XMLPUBVAR int xmlParserDebugEntities; 424 #endif 425 XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v); 426 427 XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void); 428 #ifdef LIBXML_THREAD_ENABLED 429 #define xmlParserVersion \ 430 (*(__xmlParserVersion())) 431 #else 432 XMLPUBVAR const char * xmlParserVersion; 433 #endif 434 435 XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void); 436 #ifdef LIBXML_THREAD_ENABLED 437 #define xmlPedanticParserDefaultValue \ 438 (*(__xmlPedanticParserDefaultValue())) 439 #else 440 XMLPUBVAR int xmlPedanticParserDefaultValue; 441 #endif 442 XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v); 443 444 XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void); 445 #ifdef LIBXML_THREAD_ENABLED 446 #define xmlSaveNoEmptyTags \ 447 (*(__xmlSaveNoEmptyTags())) 448 #else 449 XMLPUBVAR int xmlSaveNoEmptyTags; 450 #endif 451 XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v); 452 453 XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void); 454 #ifdef LIBXML_THREAD_ENABLED 455 #define xmlSubstituteEntitiesDefaultValue \ 456 (*(__xmlSubstituteEntitiesDefaultValue())) 457 #else 458 XMLPUBVAR int xmlSubstituteEntitiesDefaultValue; 459 #endif 460 XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v); 461 462 XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void); 463 #ifdef LIBXML_THREAD_ENABLED 464 #define xmlRegisterNodeDefaultValue \ 465 (*(__xmlRegisterNodeDefaultValue())) 466 #else 467 XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 468 #endif 469 470 XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void); 471 #ifdef LIBXML_THREAD_ENABLED 472 #define xmlDeregisterNodeDefaultValue \ 473 (*(__xmlDeregisterNodeDefaultValue())) 474 #else 475 XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 476 #endif 477 478 XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL \ 479 __xmlParserInputBufferCreateFilenameValue(void); 480 #ifdef LIBXML_THREAD_ENABLED 481 #define xmlParserInputBufferCreateFilenameValue \ 482 (*(__xmlParserInputBufferCreateFilenameValue())) 483 #else 484 XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 485 #endif 486 487 XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void); 488 #ifdef LIBXML_THREAD_ENABLED 489 #define xmlOutputBufferCreateFilenameValue \ 490 (*(__xmlOutputBufferCreateFilenameValue())) 491 #else 492 XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 493 #endif 494 495 #ifdef __cplusplus 496 } 497 #endif 498 499 #endif /* __XML_GLOBALS_H */ 500