1793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler/** 2793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler * This file has no copyright assigned and is placed in the Public Domain. 3793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler * This file is part of the w64 mingw-runtime package. 4793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler * No warranty is given; refer to the file DISCLAIMER within this package. 5793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler */ 6793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 7793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS) 8793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define NONAMELESSUNION 1 9793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 10793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if defined(NONAMELESSSTRUCT) && \ 11793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler !defined(NONAMELESSUNION) 12793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define NONAMELESSUNION 1 13793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 14793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if defined(NONAMELESSUNION) && \ 15793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler !defined(NONAMELESSSTRUCT) 16793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define NONAMELESSSTRUCT 1 17793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 18793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 19793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef __ANONYMOUS_DEFINED 20793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define __ANONYMOUS_DEFINED 21793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if defined(__GNUC__) || defined(__GNUG__) 22793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _ANONYMOUS_UNION __extension__ 23793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _ANONYMOUS_STRUCT __extension__ 24793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#else 25793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _ANONYMOUS_UNION 26793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _ANONYMOUS_STRUCT 27793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 28793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef NONAMELESSUNION 29793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _UNION_NAME(x) 30793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _STRUCT_NAME(x) 31793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#else /* NONAMELESSUNION */ 32793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _UNION_NAME(x) x 33793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _STRUCT_NAME(x) x 34793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 35793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif /* __ANONYMOUS_DEFINED */ 36793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 37793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef DUMMYUNIONNAME 38793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# ifdef NONAMELESSUNION 39793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME u 40793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME1 u1 /* Wine uses this variant */ 41793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME2 u2 42793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME3 u3 43793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME4 u4 44793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME5 u5 45793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME6 u6 46793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME7 u7 47793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME8 u8 48793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME9 u9 49793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# else /* NONAMELESSUNION */ 50793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME 51793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME1 /* Wine uses this variant */ 52793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME2 53793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME3 54793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME4 55793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME5 56793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME6 57793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME7 58793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME8 59793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME9 60793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# endif 61793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif /* DUMMYUNIONNAME */ 62793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 63793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if !defined(DUMMYUNIONNAME1) /* MinGW does not define this one */ 64793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# ifdef NONAMELESSUNION 65793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME1 u1 /* Wine uses this variant */ 66793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# else 67793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYUNIONNAME1 /* Wine uses this variant */ 68793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# endif 69793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif /* DUMMYUNIONNAME1 */ 70793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 71793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef DUMMYSTRUCTNAME 72793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# ifdef NONAMELESSUNION 73793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME s 74793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME1 s1 /* Wine uses this variant */ 75793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME2 s2 76793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME3 s3 77793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME4 s4 78793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME5 s5 79793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# else 80793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME 81793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME1 /* Wine uses this variant */ 82793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME2 83793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME3 84793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME4 85793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DUMMYSTRUCTNAME5 86793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# endif 87793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif /* DUMMYSTRUCTNAME */ 88793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 89793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler/* These are for compatibility with the Wine source tree */ 90793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 91793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef WINELIB_NAME_AW 92793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# ifdef __MINGW_NAME_AW 93793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define WINELIB_NAME_AW __MINGW_NAME_AW 94793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# else 95793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# ifdef UNICODE 96793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define WINELIB_NAME_AW(func) func##W 97793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# else 98793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define WINELIB_NAME_AW(func) func##A 99793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# endif 100793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# endif 101793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif /* WINELIB_NAME_AW */ 102793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 103793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef DECL_WINELIB_TYPE_AW 104793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# ifdef __MINGW_TYPEDEF_AW 105793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DECL_WINELIB_TYPE_AW __MINGW_TYPEDEF_AW 106793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# else 107793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; 108793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# endif 109793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif /* DECL_WINELIB_TYPE_AW */ 110793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 111