2 * globals.h: interface for all global variables of the library
4 * The bottom of this file is automatically generated by build_glob.py
5 * based on the description file global.data
7 * See Copyright for the status of this software.
9 * Gary Pennington <Gary.Pennington@uk.sun.com>
13 #ifndef __XML_GLOBALS_H
14 #define __XML_GLOBALS_H
16 #include <libxml/parser.h>
17 #include <libxml/xmlerror.h>
18 #include <libxml/SAX.h>
19 #include <libxml/xmlmemory.h>
25 void xmlInitGlobals(void);
26 void xmlCleanupGlobals(void);
29 * Externally global symbols which need to be protected for backwards
30 * compatibility support.
33 #undef docbDefaultSAXHandler
34 #undef htmlDefaultSAXHandler
35 #undef oldXMLWDcompatibility
36 #undef xmlBufferAllocScheme
37 #undef xmlDefaultBufferSize
38 #undef xmlDefaultSAXHandler
39 #undef xmlDefaultSAXLocator
40 #undef xmlDoValidityCheckingDefaultValue
42 #undef xmlGenericError
43 #undef xmlGenericErrorContext
44 #undef xmlGetWarningsDefaultValue
45 #undef xmlIndentTreeOutput
46 #undef xmlTreeIndentString
47 #undef xmlKeepBlanksDefaultValue
48 #undef xmlLineNumbersDefaultValue
49 #undef xmlLoadExtDtdDefaultValue
51 #undef xmlMallocAtomic
53 #undef xmlParserDebugEntities
54 #undef xmlParserVersion
55 #undef xmlPedanticParserDefaultValue
57 #undef xmlSaveNoEmptyTags
58 #undef xmlSubstituteEntitiesDefaultValue
59 #undef xmlRegisterNodeDefaultValue
60 #undef xmlDeregisterNodeDefaultValue
62 typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
63 typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
65 typedef struct _xmlGlobalState xmlGlobalState;
66 typedef xmlGlobalState *xmlGlobalStatePtr;
67 struct _xmlGlobalState
69 const char *xmlParserVersion;
71 xmlSAXLocator xmlDefaultSAXLocator;
72 xmlSAXHandler xmlDefaultSAXHandler;
73 xmlSAXHandler docbDefaultSAXHandler;
74 xmlSAXHandler htmlDefaultSAXHandler;
77 xmlMallocFunc xmlMalloc;
78 xmlStrdupFunc xmlMemStrdup;
79 xmlReallocFunc xmlRealloc;
81 xmlGenericErrorFunc xmlGenericError;
82 void *xmlGenericErrorContext;
84 int oldXMLWDcompatibility;
86 xmlBufferAllocationScheme xmlBufferAllocScheme;
87 int xmlDefaultBufferSize;
89 int xmlSubstituteEntitiesDefaultValue;
90 int xmlDoValidityCheckingDefaultValue;
91 int xmlGetWarningsDefaultValue;
92 int xmlKeepBlanksDefaultValue;
93 int xmlLineNumbersDefaultValue;
94 int xmlLoadExtDtdDefaultValue;
95 int xmlParserDebugEntities;
96 int xmlPedanticParserDefaultValue;
98 int xmlSaveNoEmptyTags;
99 int xmlIndentTreeOutput;
100 const char *xmlTreeIndentString;
102 xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
103 xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
105 xmlMallocFunc xmlMallocAtomic;
111 #include <libxml/threads.h>
116 void xmlInitializeGlobalState(xmlGlobalStatePtr gs);
118 void xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
120 xmlRegisterNodeFunc xmlRegisterNodeDefault(xmlRegisterNodeFunc func);
121 xmlRegisterNodeFunc xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
122 xmlDeregisterNodeFunc xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
123 xmlDeregisterNodeFunc xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
126 * In general the memory allocation entry points are not kept
127 * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED
135 #ifdef LIBXML_THREAD_ALLOC_ENABLED
136 #ifdef LIBXML_THREAD_ENABLED
137 extern xmlMallocFunc *__xmlMalloc(void);
141 LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMalloc;
144 #ifdef LIBXML_THREAD_ENABLED
145 extern xmlMallocFunc *__xmlMallocAtomic(void);
146 #define xmlMallocAtomic \
147 (*(__xmlMallocAtomic()))
149 LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMallocAtomic;
152 #ifdef LIBXML_THREAD_ENABLED
153 extern xmlReallocFunc *__xmlRealloc(void);
157 LIBXML_DLL_IMPORT extern xmlReallocFunc xmlRealloc;
160 #ifdef LIBXML_THREAD_ENABLED
161 extern xmlFreeFunc *__xmlFree(void);
165 LIBXML_DLL_IMPORT extern xmlFreeFunc xmlFree;
168 #ifdef LIBXML_THREAD_ENABLED
169 extern xmlStrdupFunc *__xmlMemStrdup(void);
170 #define xmlMemStrdup \
171 (*(__xmlMemStrdup()))
173 LIBXML_DLL_IMPORT extern xmlStrdupFunc xmlMemStrdup;
176 #else /* !LIBXML_THREAD_ALLOC_ENABLED */
177 LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMalloc;
178 LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMallocAtomic;
179 LIBXML_DLL_IMPORT extern xmlReallocFunc xmlRealloc;
180 LIBXML_DLL_IMPORT extern xmlFreeFunc xmlFree;
181 LIBXML_DLL_IMPORT extern xmlStrdupFunc xmlMemStrdup;
182 #endif /* LIBXML_THREAD_ALLOC_ENABLED */
184 #ifdef LIBXML_DOCB_ENABLED
185 extern xmlSAXHandler *__docbDefaultSAXHandler(void);
186 #ifdef LIBXML_THREAD_ENABLED
187 #define docbDefaultSAXHandler \
188 (*(__docbDefaultSAXHandler()))
190 LIBXML_DLL_IMPORT extern xmlSAXHandler docbDefaultSAXHandler;
194 #ifdef LIBXML_HTML_ENABLED
195 extern xmlSAXHandler *__htmlDefaultSAXHandler(void);
196 #ifdef LIBXML_THREAD_ENABLED
197 #define htmlDefaultSAXHandler \
198 (*(__htmlDefaultSAXHandler()))
200 LIBXML_DLL_IMPORT extern xmlSAXHandler htmlDefaultSAXHandler;
206 * Everything starting from the line below is
207 * Automatically generated by build_glob.py.
208 * Do not modify the previous line.
212 extern int *__oldXMLWDcompatibility(void);
213 #ifdef LIBXML_THREAD_ENABLED
214 #define oldXMLWDcompatibility \
215 (*(__oldXMLWDcompatibility()))
217 LIBXML_DLL_IMPORT extern int oldXMLWDcompatibility;
220 extern xmlBufferAllocationScheme *__xmlBufferAllocScheme(void);
221 #ifdef LIBXML_THREAD_ENABLED
222 #define xmlBufferAllocScheme \
223 (*(__xmlBufferAllocScheme()))
225 LIBXML_DLL_IMPORT extern xmlBufferAllocationScheme xmlBufferAllocScheme;
227 xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
229 extern int *__xmlDefaultBufferSize(void);
230 #ifdef LIBXML_THREAD_ENABLED
231 #define xmlDefaultBufferSize \
232 (*(__xmlDefaultBufferSize()))
234 LIBXML_DLL_IMPORT extern int xmlDefaultBufferSize;
236 int xmlThrDefDefaultBufferSize(int v);
238 extern xmlSAXHandler *__xmlDefaultSAXHandler(void);
239 #ifdef LIBXML_THREAD_ENABLED
240 #define xmlDefaultSAXHandler \
241 (*(__xmlDefaultSAXHandler()))
243 LIBXML_DLL_IMPORT extern xmlSAXHandler xmlDefaultSAXHandler;
246 extern xmlSAXLocator *__xmlDefaultSAXLocator(void);
247 #ifdef LIBXML_THREAD_ENABLED
248 #define xmlDefaultSAXLocator \
249 (*(__xmlDefaultSAXLocator()))
251 LIBXML_DLL_IMPORT extern xmlSAXLocator xmlDefaultSAXLocator;
254 extern int *__xmlDoValidityCheckingDefaultValue(void);
255 #ifdef LIBXML_THREAD_ENABLED
256 #define xmlDoValidityCheckingDefaultValue \
257 (*(__xmlDoValidityCheckingDefaultValue()))
259 LIBXML_DLL_IMPORT extern int xmlDoValidityCheckingDefaultValue;
261 int xmlThrDefDoValidityCheckingDefaultValue(int v);
263 extern xmlGenericErrorFunc *__xmlGenericError(void);
264 #ifdef LIBXML_THREAD_ENABLED
265 #define xmlGenericError \
266 (*(__xmlGenericError()))
268 LIBXML_DLL_IMPORT extern xmlGenericErrorFunc xmlGenericError;
271 extern void * *__xmlGenericErrorContext(void);
272 #ifdef LIBXML_THREAD_ENABLED
273 #define xmlGenericErrorContext \
274 (*(__xmlGenericErrorContext()))
276 LIBXML_DLL_IMPORT extern void * xmlGenericErrorContext;
279 extern int *__xmlGetWarningsDefaultValue(void);
280 #ifdef LIBXML_THREAD_ENABLED
281 #define xmlGetWarningsDefaultValue \
282 (*(__xmlGetWarningsDefaultValue()))
284 LIBXML_DLL_IMPORT extern int xmlGetWarningsDefaultValue;
286 int xmlThrDefGetWarningsDefaultValue(int v);
288 extern int *__xmlIndentTreeOutput(void);
289 #ifdef LIBXML_THREAD_ENABLED
290 #define xmlIndentTreeOutput \
291 (*(__xmlIndentTreeOutput()))
293 LIBXML_DLL_IMPORT extern int xmlIndentTreeOutput;
295 int xmlThrDefIndentTreeOutput(int v);
297 extern const char * *__xmlTreeIndentString(void);
298 #ifdef LIBXML_THREAD_ENABLED
299 #define xmlTreeIndentString \
300 (*(__xmlTreeIndentString()))
302 LIBXML_DLL_IMPORT extern const char * xmlTreeIndentString;
304 const char * xmlThrDefTreeIndentString(const char * v);
306 extern int *__xmlKeepBlanksDefaultValue(void);
307 #ifdef LIBXML_THREAD_ENABLED
308 #define xmlKeepBlanksDefaultValue \
309 (*(__xmlKeepBlanksDefaultValue()))
311 LIBXML_DLL_IMPORT extern int xmlKeepBlanksDefaultValue;
313 int xmlThrDefKeepBlanksDefaultValue(int v);
315 extern int *__xmlLineNumbersDefaultValue(void);
316 #ifdef LIBXML_THREAD_ENABLED
317 #define xmlLineNumbersDefaultValue \
318 (*(__xmlLineNumbersDefaultValue()))
320 LIBXML_DLL_IMPORT extern int xmlLineNumbersDefaultValue;
322 int xmlThrDefLineNumbersDefaultValue(int v);
324 extern int *__xmlLoadExtDtdDefaultValue(void);
325 #ifdef LIBXML_THREAD_ENABLED
326 #define xmlLoadExtDtdDefaultValue \
327 (*(__xmlLoadExtDtdDefaultValue()))
329 LIBXML_DLL_IMPORT extern int xmlLoadExtDtdDefaultValue;
331 int xmlThrDefLoadExtDtdDefaultValue(int v);
333 extern int *__xmlParserDebugEntities(void);
334 #ifdef LIBXML_THREAD_ENABLED
335 #define xmlParserDebugEntities \
336 (*(__xmlParserDebugEntities()))
338 LIBXML_DLL_IMPORT extern int xmlParserDebugEntities;
340 int xmlThrDefParserDebugEntities(int v);
342 extern const char * *__xmlParserVersion(void);
343 #ifdef LIBXML_THREAD_ENABLED
344 #define xmlParserVersion \
345 (*(__xmlParserVersion()))
347 LIBXML_DLL_IMPORT extern const char * xmlParserVersion;
350 extern int *__xmlPedanticParserDefaultValue(void);
351 #ifdef LIBXML_THREAD_ENABLED
352 #define xmlPedanticParserDefaultValue \
353 (*(__xmlPedanticParserDefaultValue()))
355 LIBXML_DLL_IMPORT extern int xmlPedanticParserDefaultValue;
357 int xmlThrDefPedanticParserDefaultValue(int v);
359 extern int *__xmlSaveNoEmptyTags(void);
360 #ifdef LIBXML_THREAD_ENABLED
361 #define xmlSaveNoEmptyTags \
362 (*(__xmlSaveNoEmptyTags()))
364 LIBXML_DLL_IMPORT extern int xmlSaveNoEmptyTags;
366 int xmlThrDefSaveNoEmptyTags(int v);
368 extern int *__xmlSubstituteEntitiesDefaultValue(void);
369 #ifdef LIBXML_THREAD_ENABLED
370 #define xmlSubstituteEntitiesDefaultValue \
371 (*(__xmlSubstituteEntitiesDefaultValue()))
373 LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultValue;
375 int xmlThrDefSubstituteEntitiesDefaultValue(int v);
377 extern xmlRegisterNodeFunc *__xmlRegisterNodeDefaultValue(void);
378 #ifdef LIBXML_THREAD_ENABLED
379 #define xmlRegisterNodeDefaultValue \
380 (*(__xmlRegisterNodeDefaultValue()))
382 LIBXML_DLL_IMPORT extern xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
385 extern xmlDeregisterNodeFunc *__xmlDeregisterNodeDefaultValue(void);
386 #ifdef LIBXML_THREAD_ENABLED
387 #define xmlDeregisterNodeDefaultValue \
388 (*(__xmlDeregisterNodeDefaultValue()))
390 LIBXML_DLL_IMPORT extern xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
397 #endif /* __XML_GLOBALS_H */