root / lab4 / .minix-src / include / expat_external.h @ 14
History | View | Annotate | Download (3.29 KB)
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 */ |