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 24#ifdef __cplusplus 25extern "C" { 26#endif 27 28XMLPUBFUN void XMLCALL xmlInitGlobals(void); 29XMLPUBFUN 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 */ 42typedef 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 */ 55typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression); 56 57XMLPUBFUN xmlParserInputBufferCreateFilenameFunc 58XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func); 59XMLPUBFUN xmlOutputBufferCreateFilenameFunc 60XMLCALL 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 */ 106typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node); 107/** 108 * xmlDeregisterNodeFunc: 109 * @node: the current node 110 * 111 * Signature for the deregistration callback of a discarded node 112 */ 113typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node); 114 115typedef struct _xmlGlobalState xmlGlobalState; 116typedef xmlGlobalState *xmlGlobalStatePtr; 117struct _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 168extern "C" { 169#endif 170 171XMLPUBFUN void XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs); 172 173XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler); 174 175XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler); 176 177XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func); 178XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func); 179XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func); 180XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func); 181 182XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL 183 xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func); 184XMLPUBFUN 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 200XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void); 201#define xmlMalloc \ 202(*(__xmlMalloc())) 203#else 204XMLPUBVAR xmlMallocFunc xmlMalloc; 205#endif 206 207#ifdef LIBXML_THREAD_ENABLED 208XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void); 209#define xmlMallocAtomic \ 210(*(__xmlMallocAtomic())) 211#else 212XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 213#endif 214 215#ifdef LIBXML_THREAD_ENABLED 216XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void); 217#define xmlRealloc \ 218(*(__xmlRealloc())) 219#else 220XMLPUBVAR xmlReallocFunc xmlRealloc; 221#endif 222 223#ifdef LIBXML_THREAD_ENABLED 224XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void); 225#define xmlFree \ 226(*(__xmlFree())) 227#else 228XMLPUBVAR xmlFreeFunc xmlFree; 229#endif 230 231#ifdef LIBXML_THREAD_ENABLED 232XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void); 233#define xmlMemStrdup \ 234(*(__xmlMemStrdup())) 235#else 236XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 237#endif 238 239#else /* !LIBXML_THREAD_ALLOC_ENABLED */ 240XMLPUBVAR xmlMallocFunc xmlMalloc; 241XMLPUBVAR xmlMallocFunc xmlMallocAtomic; 242XMLPUBVAR xmlReallocFunc xmlRealloc; 243XMLPUBVAR xmlFreeFunc xmlFree; 244XMLPUBVAR xmlStrdupFunc xmlMemStrdup; 245#endif /* LIBXML_THREAD_ALLOC_ENABLED */ 246 247#ifdef LIBXML_DOCB_ENABLED 248XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void); 249#ifdef LIBXML_THREAD_ENABLED 250#define docbDefaultSAXHandler \ 251(*(__docbDefaultSAXHandler())) 252#else 253XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler; 254#endif 255#endif 256 257#ifdef LIBXML_HTML_ENABLED 258XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void); 259#ifdef LIBXML_THREAD_ENABLED 260#define htmlDefaultSAXHandler \ 261(*(__htmlDefaultSAXHandler())) 262#else 263XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler; 264#endif 265#endif 266 267XMLPUBFUN xmlError * XMLCALL __xmlLastError(void); 268#ifdef LIBXML_THREAD_ENABLED 269#define xmlLastError \ 270(*(__xmlLastError())) 271#else 272XMLPUBVAR 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 282XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void); 283#ifdef LIBXML_THREAD_ENABLED 284#define oldXMLWDcompatibility \ 285(*(__oldXMLWDcompatibility())) 286#else 287XMLPUBVAR int oldXMLWDcompatibility; 288#endif 289 290XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void); 291#ifdef LIBXML_THREAD_ENABLED 292#define xmlBufferAllocScheme \ 293(*(__xmlBufferAllocScheme())) 294#else 295XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme; 296#endif 297XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); 298 299XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void); 300#ifdef LIBXML_THREAD_ENABLED 301#define xmlDefaultBufferSize \ 302(*(__xmlDefaultBufferSize())) 303#else 304XMLPUBVAR int xmlDefaultBufferSize; 305#endif 306XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v); 307 308XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void); 309#ifdef LIBXML_THREAD_ENABLED 310#define xmlDefaultSAXHandler \ 311(*(__xmlDefaultSAXHandler())) 312#else 313XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler; 314#endif 315 316XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void); 317#ifdef LIBXML_THREAD_ENABLED 318#define xmlDefaultSAXLocator \ 319(*(__xmlDefaultSAXLocator())) 320#else 321XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator; 322#endif 323 324XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void); 325#ifdef LIBXML_THREAD_ENABLED 326#define xmlDoValidityCheckingDefaultValue \ 327(*(__xmlDoValidityCheckingDefaultValue())) 328#else 329XMLPUBVAR int xmlDoValidityCheckingDefaultValue; 330#endif 331XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v); 332 333XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void); 334#ifdef LIBXML_THREAD_ENABLED 335#define xmlGenericError \ 336(*(__xmlGenericError())) 337#else 338XMLPUBVAR xmlGenericErrorFunc xmlGenericError; 339#endif 340 341XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void); 342#ifdef LIBXML_THREAD_ENABLED 343#define xmlStructuredError \ 344(*(__xmlStructuredError())) 345#else 346XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError; 347#endif 348 349XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void); 350#ifdef LIBXML_THREAD_ENABLED 351#define xmlGenericErrorContext \ 352(*(__xmlGenericErrorContext())) 353#else 354XMLPUBVAR void * xmlGenericErrorContext; 355#endif 356 357XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void); 358#ifdef LIBXML_THREAD_ENABLED 359#define xmlGetWarningsDefaultValue \ 360(*(__xmlGetWarningsDefaultValue())) 361#else 362XMLPUBVAR int xmlGetWarningsDefaultValue; 363#endif 364XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v); 365 366XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void); 367#ifdef LIBXML_THREAD_ENABLED 368#define xmlIndentTreeOutput \ 369(*(__xmlIndentTreeOutput())) 370#else 371XMLPUBVAR int xmlIndentTreeOutput; 372#endif 373XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v); 374 375XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void); 376#ifdef LIBXML_THREAD_ENABLED 377#define xmlTreeIndentString \ 378(*(__xmlTreeIndentString())) 379#else 380XMLPUBVAR const char * xmlTreeIndentString; 381#endif 382XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v); 383 384XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void); 385#ifdef LIBXML_THREAD_ENABLED 386#define xmlKeepBlanksDefaultValue \ 387(*(__xmlKeepBlanksDefaultValue())) 388#else 389XMLPUBVAR int xmlKeepBlanksDefaultValue; 390#endif 391XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v); 392 393XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void); 394#ifdef LIBXML_THREAD_ENABLED 395#define xmlLineNumbersDefaultValue \ 396(*(__xmlLineNumbersDefaultValue())) 397#else 398XMLPUBVAR int xmlLineNumbersDefaultValue; 399#endif 400XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v); 401 402XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void); 403#ifdef LIBXML_THREAD_ENABLED 404#define xmlLoadExtDtdDefaultValue \ 405(*(__xmlLoadExtDtdDefaultValue())) 406#else 407XMLPUBVAR int xmlLoadExtDtdDefaultValue; 408#endif 409XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v); 410 411XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void); 412#ifdef LIBXML_THREAD_ENABLED 413#define xmlParserDebugEntities \ 414(*(__xmlParserDebugEntities())) 415#else 416XMLPUBVAR int xmlParserDebugEntities; 417#endif 418XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v); 419 420XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void); 421#ifdef LIBXML_THREAD_ENABLED 422#define xmlParserVersion \ 423(*(__xmlParserVersion())) 424#else 425XMLPUBVAR const char * xmlParserVersion; 426#endif 427 428XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void); 429#ifdef LIBXML_THREAD_ENABLED 430#define xmlPedanticParserDefaultValue \ 431(*(__xmlPedanticParserDefaultValue())) 432#else 433XMLPUBVAR int xmlPedanticParserDefaultValue; 434#endif 435XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v); 436 437XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void); 438#ifdef LIBXML_THREAD_ENABLED 439#define xmlSaveNoEmptyTags \ 440(*(__xmlSaveNoEmptyTags())) 441#else 442XMLPUBVAR int xmlSaveNoEmptyTags; 443#endif 444XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v); 445 446XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void); 447#ifdef LIBXML_THREAD_ENABLED 448#define xmlSubstituteEntitiesDefaultValue \ 449(*(__xmlSubstituteEntitiesDefaultValue())) 450#else 451XMLPUBVAR int xmlSubstituteEntitiesDefaultValue; 452#endif 453XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v); 454 455XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void); 456#ifdef LIBXML_THREAD_ENABLED 457#define xmlRegisterNodeDefaultValue \ 458(*(__xmlRegisterNodeDefaultValue())) 459#else 460XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue; 461#endif 462 463XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void); 464#ifdef LIBXML_THREAD_ENABLED 465#define xmlDeregisterNodeDefaultValue \ 466(*(__xmlDeregisterNodeDefaultValue())) 467#else 468XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; 469#endif 470 471XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void); 472#ifdef LIBXML_THREAD_ENABLED 473#define xmlParserInputBufferCreateFilenameValue \ 474(*(__xmlParserInputBufferCreateFilenameValue())) 475#else 476XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue; 477#endif 478 479XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void); 480#ifdef LIBXML_THREAD_ENABLED 481#define xmlOutputBufferCreateFilenameValue \ 482(*(__xmlOutputBufferCreateFilenameValue())) 483#else 484XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue; 485#endif 486 487#ifdef __cplusplus 488} 489#endif 490 491#endif /* __XML_GLOBALS_H */ 492