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