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