• 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 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