172
|
1 |
/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
|
|
2 |
See the file COPYING for copying permission.
|
|
3 |
*/
|
|
4 |
|
|
5 |
#ifndef Expat_External_INCLUDED
|
|
6 |
#define Expat_External_INCLUDED 1
|
|
7 |
|
|
8 |
/* External API definitions */
|
|
9 |
|
|
10 |
#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__)
|
|
11 |
#define XML_USE_MSC_EXTENSIONS 1
|
|
12 |
#endif
|
|
13 |
|
|
14 |
/* Expat tries very hard to make the API boundary very specifically
|
|
15 |
defined. There are two macros defined to control this boundary;
|
|
16 |
each of these can be defined before including this header to
|
|
17 |
achieve some different behavior, but doing so it not recommended or
|
|
18 |
tested frequently.
|
|
19 |
|
|
20 |
XMLCALL - The calling convention to use for all calls across the
|
|
21 |
"library boundary." This will default to cdecl, and
|
|
22 |
try really hard to tell the compiler that's what we
|
|
23 |
want.
|
|
24 |
|
|
25 |
XMLIMPORT - Whatever magic is needed to note that a function is
|
|
26 |
to be imported from a dynamically loaded library
|
|
27 |
(.dll, .so, or .sl, depending on your platform).
|
|
28 |
|
|
29 |
The XMLCALL macro was added in Expat 1.95.7. The only one which is
|
|
30 |
expected to be directly useful in client code is XMLCALL.
|
|
31 |
|
|
32 |
Note that on at least some Unix versions, the Expat library must be
|
|
33 |
compiled with the cdecl calling convention as the default since
|
|
34 |
system headers may assume the cdecl convention.
|
|
35 |
*/
|
|
36 |
#ifndef XMLCALL
|
|
37 |
#if defined(_MSC_VER)
|
|
38 |
#define XMLCALL __cdecl
|
|
39 |
#elif defined(__GNUC__) && defined(__i386) && !defined(__INTEL_COMPILER)
|
|
40 |
#define XMLCALL __attribute__((cdecl))
|
|
41 |
#else
|
|
42 |
/* For any platform which uses this definition and supports more than
|
|
43 |
one calling convention, we need to extend this definition to
|
|
44 |
declare the convention used on that platform, if it's possible to
|
|
45 |
do so.
|
|
46 |
|
|
47 |
If this is the case for your platform, please file a bug report
|
|
48 |
with information on how to identify your platform via the C
|
|
49 |
pre-processor and how to specify the same calling convention as the
|
|
50 |
platform's malloc() implementation.
|
|
51 |
*/
|
|
52 |
#define XMLCALL
|
|
53 |
#endif
|
|
54 |
#endif /* not defined XMLCALL */
|
|
55 |
|
|
56 |
|
|
57 |
#if !defined(XML_STATIC) && !defined(XMLIMPORT)
|
|
58 |
#ifndef XML_BUILDING_EXPAT
|
|
59 |
/* using Expat from an application */
|
|
60 |
|
|
61 |
#ifdef XML_USE_MSC_EXTENSIONS
|
|
62 |
#define XMLIMPORT __declspec(dllimport)
|
|
63 |
#endif
|
|
64 |
|
|
65 |
#endif
|
|
66 |
#endif /* not defined XML_STATIC */
|
|
67 |
|
|
68 |
|
|
69 |
/* If we didn't define it above, define it away: */
|
|
70 |
#ifndef XMLIMPORT
|
|
71 |
#define XMLIMPORT
|
|
72 |
#endif
|
|
73 |
|
|
74 |
|
|
75 |
#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
|
|
76 |
|
|
77 |
#ifdef __cplusplus
|
|
78 |
extern "C" {
|
|
79 |
#endif
|
|
80 |
|
|
81 |
#ifdef XML_UNICODE_WCHAR_T
|
|
82 |
#define XML_UNICODE
|
|
83 |
#endif
|
|
84 |
|
|
85 |
#ifdef XML_UNICODE /* Information is UTF-16 encoded. */
|
|
86 |
#ifdef XML_UNICODE_WCHAR_T
|
|
87 |
typedef wchar_t XML_Char;
|
|
88 |
typedef wchar_t XML_LChar;
|
|
89 |
#else
|
|
90 |
typedef unsigned short XML_Char;
|
|
91 |
typedef char XML_LChar;
|
|
92 |
#endif /* XML_UNICODE_WCHAR_T */
|
|
93 |
#else /* Information is UTF-8 encoded. */
|
|
94 |
typedef char XML_Char;
|
|
95 |
typedef char XML_LChar;
|
|
96 |
#endif /* XML_UNICODE */
|
|
97 |
|
|
98 |
#ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */
|
|
99 |
#if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400
|
|
100 |
typedef __int64 XML_Index;
|
|
101 |
typedef unsigned __int64 XML_Size;
|
|
102 |
#else
|
|
103 |
typedef long long XML_Index;
|
|
104 |
typedef unsigned long long XML_Size;
|
|
105 |
#endif
|
|
106 |
#else
|
|
107 |
typedef long XML_Index;
|
|
108 |
typedef unsigned long XML_Size;
|
|
109 |
#endif /* XML_LARGE_SIZE */
|
|
110 |
|
|
111 |
#ifdef __cplusplus
|
|
112 |
}
|
|
113 |
#endif
|
|
114 |
|
|
115 |
#endif /* not Expat_External_INCLUDED */
|