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