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