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