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