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