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