blob: c6ac0a315ba29d345bbed40372d8d753bfca500d [file] [log] [blame]
Daniel Veillardb8478642001-10-12 17:29:10 +00001/*
2 * globals.h: interface for all global variables of the library
3 *
4 * The bottom of this file is automatically generated by build_glob.py
5 * based on the description file global.data
6 *
7 * See Copyright for the status of this software.
8 *
9 * Gary Pennington <Gary.Pennington@uk.sun.com>
10 * daniel@veillard.com
11 */
12
13#ifndef __XML_GLOBALS_H
14#define __XML_GLOBALS_H
15
16#include <libxml/parser.h>
17#include <libxml/xmlerror.h>
18#include <libxml/SAX.h>
Daniel Veillard6c4ffaf2002-02-11 08:54:05 +000019#include <libxml/xmlmemory.h>
Daniel Veillardb8478642001-10-12 17:29:10 +000020
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/*
26 * Externally global symbols which need to be protected for backwards
27 * compatibility support.
28 */
Daniel Veillardd0463562001-10-13 09:15:48 +000029
Daniel Veillardb8478642001-10-12 17:29:10 +000030#undef docbDefaultSAXHandler
31#undef htmlDefaultSAXHandler
32#undef oldXMLWDcompatibility
33#undef xmlBufferAllocScheme
34#undef xmlDefaultBufferSize
35#undef xmlDefaultSAXHandler
36#undef xmlDefaultSAXLocator
37#undef xmlDoValidityCheckingDefaultValue
38#undef xmlFree
39#undef xmlGenericError
40#undef xmlGenericErrorContext
41#undef xmlGetWarningsDefaultValue
42#undef xmlIndentTreeOutput
43#undef xmlKeepBlanksDefaultValue
44#undef xmlLineNumbersDefaultValue
45#undef xmlLoadExtDtdDefaultValue
46#undef xmlMalloc
47#undef xmlMemStrdup
48#undef xmlParserDebugEntities
49#undef xmlParserVersion
50#undef xmlPedanticParserDefaultValue
51#undef xmlRealloc
52#undef xmlSaveNoEmptyTags
Daniel Veillardb8478642001-10-12 17:29:10 +000053#undef xmlSubstituteEntitiesDefaultValue
54
55typedef struct _xmlGlobalState xmlGlobalState;
56typedef xmlGlobalState *xmlGlobalStatePtr;
57struct _xmlGlobalState
58{
Daniel Veillardd0463562001-10-13 09:15:48 +000059 const char *xmlParserVersion;
60
Daniel Veillard3c01b1d2001-10-17 15:58:35 +000061 xmlSAXLocator xmlDefaultSAXLocator;
62 xmlSAXHandler xmlDefaultSAXHandler;
63 xmlSAXHandler docbDefaultSAXHandler;
64 xmlSAXHandler htmlDefaultSAXHandler;
65
Daniel Veillardb8478642001-10-12 17:29:10 +000066 xmlFreeFunc xmlFree;
Daniel Veillardd0463562001-10-13 09:15:48 +000067 xmlMallocFunc xmlMalloc;
68 xmlStrdupFunc xmlMemStrdup;
69 xmlReallocFunc xmlRealloc;
70
Daniel Veillardb8478642001-10-12 17:29:10 +000071 xmlGenericErrorFunc xmlGenericError;
72 void *xmlGenericErrorContext;
Daniel Veillardd0463562001-10-13 09:15:48 +000073
Daniel Veillardd0463562001-10-13 09:15:48 +000074 int oldXMLWDcompatibility;
75
76 xmlBufferAllocationScheme xmlBufferAllocScheme;
77 int xmlDefaultBufferSize;
78
79 int xmlSubstituteEntitiesDefaultValue;
80 int xmlDoValidityCheckingDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +000081 int xmlGetWarningsDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +000082 int xmlKeepBlanksDefaultValue;
83 int xmlLineNumbersDefaultValue;
84 int xmlLoadExtDtdDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +000085 int xmlParserDebugEntities;
Daniel Veillardb8478642001-10-12 17:29:10 +000086 int xmlPedanticParserDefaultValue;
Daniel Veillardd0463562001-10-13 09:15:48 +000087
Daniel Veillardb8478642001-10-12 17:29:10 +000088 int xmlSaveNoEmptyTags;
Daniel Veillardd0463562001-10-13 09:15:48 +000089 int xmlIndentTreeOutput;
Daniel Veillardb8478642001-10-12 17:29:10 +000090};
91
Daniel Veillard6c4ffaf2002-02-11 08:54:05 +000092#ifdef __cplusplus
93}
94#endif
95#include <libxml/threads.h>
96#ifdef __cplusplus
97extern "C" {
98#endif
99
Daniel Veillardb8478642001-10-12 17:29:10 +0000100void xmlInitializeGlobalState(xmlGlobalStatePtr gs);
101
102/*
Daniel Veillard64a411c2001-10-15 12:32:07 +0000103 * In general the memory allocation entry points are not kept
Daniel Veillardcbaf3992001-12-31 16:16:02 +0000104 * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED
Daniel Veillard64a411c2001-10-15 12:32:07 +0000105 * - xmlMalloc
106 * - xmlRealloc
107 * - xmlMemStrdup
108 * - xmlFree
109 */
110
111#ifdef LIBXML_THREAD_ALLOC_ENABLED
112#ifdef LIBXML_THREAD_ENABLED
113extern xmlMallocFunc *__xmlMalloc(void);
114#define xmlMalloc \
115(*(__xmlMalloc()))
116#else
117LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMalloc;
118#endif
119
120#ifdef LIBXML_THREAD_ENABLED
121extern xmlReallocFunc *__xmlRealloc(void);
122#define xmlRealloc \
123(*(__xmlRealloc()))
124#else
125LIBXML_DLL_IMPORT extern xmlReallocFunc xmlRealloc;
126#endif
127
128#ifdef LIBXML_THREAD_ENABLED
129extern xmlFreeFunc *__xmlFree(void);
130#define xmlFree \
131(*(__xmlFree()))
132#else
133LIBXML_DLL_IMPORT extern xmlFreeFunc xmlFree;
134#endif
135
136#ifdef LIBXML_THREAD_ENABLED
137extern xmlStrdupFunc *__xmlMemStrdup(void);
138#define xmlMemStrdup \
139(*(__xmlMemStrdup()))
140#else
141LIBXML_DLL_IMPORT extern xmlStrdupFunc xmlMemStrdup;
142#endif
143#else /* !LIBXML_THREAD_ALLOC_ENABLED */
144LIBXML_DLL_IMPORT extern xmlMallocFunc xmlMalloc;
145LIBXML_DLL_IMPORT extern xmlReallocFunc xmlRealloc;
146LIBXML_DLL_IMPORT extern xmlFreeFunc xmlFree;
147LIBXML_DLL_IMPORT extern xmlStrdupFunc xmlMemStrdup;
148#endif /* LIBXML_THREAD_ALLOC_ENABLED */
149
Daniel Veillard0ba59232002-02-10 13:20:39 +0000150#ifdef LIBXML_DOCB_ENABLED
151extern xmlSAXHandler *__docbDefaultSAXHandler(void);
152#ifdef LIBXML_THREAD_ENABLED
153#define docbDefaultSAXHandler \
154(*(__docbDefaultSAXHandler()))
155#else
156LIBXML_DLL_IMPORT extern xmlSAXHandler docbDefaultSAXHandler;
157#endif
158#endif
159
160#ifdef LIBXML_HTML_ENABLED
161extern xmlSAXHandler *__htmlDefaultSAXHandler(void);
162#ifdef LIBXML_THREAD_ENABLED
163#define htmlDefaultSAXHandler \
164(*(__htmlDefaultSAXHandler()))
165#else
166LIBXML_DLL_IMPORT extern xmlSAXHandler htmlDefaultSAXHandler;
167#endif
168#endif
169
170
Daniel Veillard64a411c2001-10-15 12:32:07 +0000171/*
Daniel Veillardb8478642001-10-12 17:29:10 +0000172 * Everything starting from the line below is
173 * Automatically generated by build_glob.py.
174 * Do not modify the previous line.
175 */
176
177
Daniel Veillardb8478642001-10-12 17:29:10 +0000178extern int *__oldXMLWDcompatibility(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000179#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000180#define oldXMLWDcompatibility \
181(*(__oldXMLWDcompatibility()))
182#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000183LIBXML_DLL_IMPORT extern int oldXMLWDcompatibility;
Daniel Veillardb8478642001-10-12 17:29:10 +0000184#endif
185
Daniel Veillardb8478642001-10-12 17:29:10 +0000186extern xmlBufferAllocationScheme *__xmlBufferAllocScheme(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000187#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000188#define xmlBufferAllocScheme \
189(*(__xmlBufferAllocScheme()))
190#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000191LIBXML_DLL_IMPORT extern xmlBufferAllocationScheme xmlBufferAllocScheme;
Daniel Veillardb8478642001-10-12 17:29:10 +0000192#endif
193
Daniel Veillardb8478642001-10-12 17:29:10 +0000194extern int *__xmlDefaultBufferSize(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000195#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000196#define xmlDefaultBufferSize \
197(*(__xmlDefaultBufferSize()))
198#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000199LIBXML_DLL_IMPORT extern int xmlDefaultBufferSize;
Daniel Veillardb8478642001-10-12 17:29:10 +0000200#endif
201
Daniel Veillardb8478642001-10-12 17:29:10 +0000202extern xmlSAXHandler *__xmlDefaultSAXHandler(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000203#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000204#define xmlDefaultSAXHandler \
205(*(__xmlDefaultSAXHandler()))
206#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000207LIBXML_DLL_IMPORT extern xmlSAXHandler xmlDefaultSAXHandler;
Daniel Veillardb8478642001-10-12 17:29:10 +0000208#endif
209
Daniel Veillardb8478642001-10-12 17:29:10 +0000210extern xmlSAXLocator *__xmlDefaultSAXLocator(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000211#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000212#define xmlDefaultSAXLocator \
213(*(__xmlDefaultSAXLocator()))
214#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000215LIBXML_DLL_IMPORT extern xmlSAXLocator xmlDefaultSAXLocator;
Daniel Veillardb8478642001-10-12 17:29:10 +0000216#endif
217
Daniel Veillardb8478642001-10-12 17:29:10 +0000218extern int *__xmlDoValidityCheckingDefaultValue(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000219#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000220#define xmlDoValidityCheckingDefaultValue \
221(*(__xmlDoValidityCheckingDefaultValue()))
222#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000223LIBXML_DLL_IMPORT extern int xmlDoValidityCheckingDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +0000224#endif
225
Daniel Veillardb8478642001-10-12 17:29:10 +0000226extern xmlGenericErrorFunc *__xmlGenericError(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000227#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000228#define xmlGenericError \
229(*(__xmlGenericError()))
230#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000231LIBXML_DLL_IMPORT extern xmlGenericErrorFunc xmlGenericError;
Daniel Veillardb8478642001-10-12 17:29:10 +0000232#endif
233
Daniel Veillardb8478642001-10-12 17:29:10 +0000234extern void * *__xmlGenericErrorContext(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000235#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000236#define xmlGenericErrorContext \
237(*(__xmlGenericErrorContext()))
238#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000239LIBXML_DLL_IMPORT extern void * xmlGenericErrorContext;
Daniel Veillardb8478642001-10-12 17:29:10 +0000240#endif
241
Daniel Veillardb8478642001-10-12 17:29:10 +0000242extern int *__xmlGetWarningsDefaultValue(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000243#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000244#define xmlGetWarningsDefaultValue \
245(*(__xmlGetWarningsDefaultValue()))
246#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000247LIBXML_DLL_IMPORT extern int xmlGetWarningsDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +0000248#endif
249
Daniel Veillardb8478642001-10-12 17:29:10 +0000250extern int *__xmlIndentTreeOutput(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000251#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000252#define xmlIndentTreeOutput \
253(*(__xmlIndentTreeOutput()))
254#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000255LIBXML_DLL_IMPORT extern int xmlIndentTreeOutput;
Daniel Veillardb8478642001-10-12 17:29:10 +0000256#endif
257
Daniel Veillardb8478642001-10-12 17:29:10 +0000258extern int *__xmlKeepBlanksDefaultValue(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000259#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000260#define xmlKeepBlanksDefaultValue \
261(*(__xmlKeepBlanksDefaultValue()))
262#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000263LIBXML_DLL_IMPORT extern int xmlKeepBlanksDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +0000264#endif
265
Daniel Veillardb8478642001-10-12 17:29:10 +0000266extern int *__xmlLineNumbersDefaultValue(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000267#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000268#define xmlLineNumbersDefaultValue \
269(*(__xmlLineNumbersDefaultValue()))
270#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000271LIBXML_DLL_IMPORT extern int xmlLineNumbersDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +0000272#endif
273
Daniel Veillardb8478642001-10-12 17:29:10 +0000274extern int *__xmlLoadExtDtdDefaultValue(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000275#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000276#define xmlLoadExtDtdDefaultValue \
277(*(__xmlLoadExtDtdDefaultValue()))
278#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000279LIBXML_DLL_IMPORT extern int xmlLoadExtDtdDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +0000280#endif
281
Daniel Veillardb8478642001-10-12 17:29:10 +0000282extern int *__xmlParserDebugEntities(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000283#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000284#define xmlParserDebugEntities \
285(*(__xmlParserDebugEntities()))
286#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000287LIBXML_DLL_IMPORT extern int xmlParserDebugEntities;
Daniel Veillardb8478642001-10-12 17:29:10 +0000288#endif
289
Daniel Veillardb8478642001-10-12 17:29:10 +0000290extern const char * *__xmlParserVersion(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000291#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000292#define xmlParserVersion \
293(*(__xmlParserVersion()))
294#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000295LIBXML_DLL_IMPORT extern const char * xmlParserVersion;
Daniel Veillardb8478642001-10-12 17:29:10 +0000296#endif
297
Daniel Veillardb8478642001-10-12 17:29:10 +0000298extern int *__xmlPedanticParserDefaultValue(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000299#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000300#define xmlPedanticParserDefaultValue \
301(*(__xmlPedanticParserDefaultValue()))
302#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000303LIBXML_DLL_IMPORT extern int xmlPedanticParserDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +0000304#endif
305
Daniel Veillardb8478642001-10-12 17:29:10 +0000306extern int *__xmlSaveNoEmptyTags(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000307#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000308#define xmlSaveNoEmptyTags \
309(*(__xmlSaveNoEmptyTags()))
310#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000311LIBXML_DLL_IMPORT extern int xmlSaveNoEmptyTags;
Daniel Veillardb8478642001-10-12 17:29:10 +0000312#endif
313
Daniel Veillardb8478642001-10-12 17:29:10 +0000314extern int *__xmlSubstituteEntitiesDefaultValue(void);
Daniel Veillard0ba59232002-02-10 13:20:39 +0000315#ifdef LIBXML_THREAD_ENABLED
Daniel Veillardb8478642001-10-12 17:29:10 +0000316#define xmlSubstituteEntitiesDefaultValue \
317(*(__xmlSubstituteEntitiesDefaultValue()))
318#else
Daniel Veillardd0463562001-10-13 09:15:48 +0000319LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultValue;
Daniel Veillardb8478642001-10-12 17:29:10 +0000320#endif
321
322#ifdef __cplusplus
323}
324#endif
325
326#endif /* __XML_GLOBALS_H */