File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / expat / lib / expat_external.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:00:54 2012 UTC (12 years, 4 months ago) by misho
Branches: expat, MAIN
CVS tags: v2_1_0, v2_0_1p0, v2_0_1, HEAD
expat

    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 */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>