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 118