master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER within this package.
  5 */
  6
  7#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
  8#define NONAMELESSUNION		1
  9#endif
 10#if defined(NONAMELESSSTRUCT) && \
 11   !defined(NONAMELESSUNION)
 12#define NONAMELESSUNION		1
 13#endif
 14#if defined(NONAMELESSUNION)  && \
 15   !defined(NONAMELESSSTRUCT)
 16#define NONAMELESSSTRUCT	1
 17#endif
 18#if !defined(__GNU_EXTENSION)
 19#if defined(__GNUC__) || defined(__GNUG__)
 20#define __GNU_EXTENSION		__extension__
 21#else
 22#define __GNU_EXTENSION
 23#endif
 24#endif /* __extension__ */
 25
 26#ifndef __ANONYMOUS_DEFINED
 27#define __ANONYMOUS_DEFINED
 28#if defined(__GNUC__) || defined(__GNUG__)
 29#define _ANONYMOUS_UNION	__extension__
 30#define _ANONYMOUS_STRUCT	__extension__
 31#else
 32#define _ANONYMOUS_UNION
 33#define _ANONYMOUS_STRUCT
 34#endif
 35#ifndef NONAMELESSUNION
 36#define _UNION_NAME(x)
 37#define _STRUCT_NAME(x)
 38#else /* NONAMELESSUNION */
 39#define _UNION_NAME(x)  x
 40#define _STRUCT_NAME(x) x
 41#endif
 42#endif	/* __ANONYMOUS_DEFINED */
 43
 44#ifndef DUMMYUNIONNAME
 45# ifdef NONAMELESSUNION
 46#  define DUMMYUNIONNAME  u
 47#  define DUMMYUNIONNAME1 u1	/* Wine uses this variant */
 48#  define DUMMYUNIONNAME2 u2
 49#  define DUMMYUNIONNAME3 u3
 50#  define DUMMYUNIONNAME4 u4
 51#  define DUMMYUNIONNAME5 u5
 52#  define DUMMYUNIONNAME6 u6
 53#  define DUMMYUNIONNAME7 u7
 54#  define DUMMYUNIONNAME8 u8
 55#  define DUMMYUNIONNAME9 u9
 56# else /* NONAMELESSUNION */
 57#  define DUMMYUNIONNAME
 58#  define DUMMYUNIONNAME1	/* Wine uses this variant */
 59#  define DUMMYUNIONNAME2
 60#  define DUMMYUNIONNAME3
 61#  define DUMMYUNIONNAME4
 62#  define DUMMYUNIONNAME5
 63#  define DUMMYUNIONNAME6
 64#  define DUMMYUNIONNAME7
 65#  define DUMMYUNIONNAME8
 66#  define DUMMYUNIONNAME9
 67# endif
 68#endif	/* DUMMYUNIONNAME */
 69
 70#if !defined(DUMMYUNIONNAME1)	/* MinGW does not define this one */
 71# ifdef NONAMELESSUNION
 72#  define DUMMYUNIONNAME1 u1	/* Wine uses this variant */
 73# else
 74#  define DUMMYUNIONNAME1	/* Wine uses this variant */
 75# endif
 76#endif	/* DUMMYUNIONNAME1 */
 77
 78#ifndef DUMMYSTRUCTNAME
 79# ifdef NONAMELESSUNION
 80#  define DUMMYSTRUCTNAME  s
 81#  define DUMMYSTRUCTNAME1 s1	/* Wine uses this variant */
 82#  define DUMMYSTRUCTNAME2 s2
 83#  define DUMMYSTRUCTNAME3 s3
 84#  define DUMMYSTRUCTNAME4 s4
 85#  define DUMMYSTRUCTNAME5 s5
 86# else
 87#  define DUMMYSTRUCTNAME
 88#  define DUMMYSTRUCTNAME1	/* Wine uses this variant */
 89#  define DUMMYSTRUCTNAME2
 90#  define DUMMYSTRUCTNAME3
 91#  define DUMMYSTRUCTNAME4
 92#  define DUMMYSTRUCTNAME5
 93# endif
 94#endif /* DUMMYSTRUCTNAME */
 95
 96/* These are for compatibility with the Wine source tree */
 97
 98#ifndef WINELIB_NAME_AW
 99# ifdef __MINGW_NAME_AW
100#   define WINELIB_NAME_AW  __MINGW_NAME_AW
101# else
102#  ifdef UNICODE
103#   define WINELIB_NAME_AW(func) func##W
104#  else
105#   define WINELIB_NAME_AW(func) func##A
106#  endif
107# endif
108#endif	/* WINELIB_NAME_AW */
109
110#ifndef DECL_WINELIB_TYPE_AW
111# ifdef __MINGW_TYPEDEF_AW
112#  define DECL_WINELIB_TYPE_AW  __MINGW_TYPEDEF_AW
113# else
114#  define DECL_WINELIB_TYPE_AW(type)  typedef WINELIB_NAME_AW(type) type;
115# endif
116#endif	/* DECL_WINELIB_TYPE_AW */
117