118 lines
3.2 KiB
C
118 lines
3.2 KiB
C
|
/**
|
||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||
|
* This file is part of the mingw-w64 runtime package.
|
||
|
* No warranty is given; refer to the file DISCLAIMER within this package.
|
||
|
*/
|
||
|
|
||
|
#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
|
||
|
#define NONAMELESSUNION 1
|
||
|
#endif
|
||
|
#if defined(NONAMELESSSTRUCT) && \
|
||
|
!defined(NONAMELESSUNION)
|
||
|
#define NONAMELESSUNION 1
|
||
|
#endif
|
||
|
#if defined(NONAMELESSUNION) && \
|
||
|
!defined(NONAMELESSSTRUCT)
|
||
|
#define NONAMELESSSTRUCT 1
|
||
|
#endif
|
||
|
#if !defined(__GNU_EXTENSION)
|
||
|
#if defined(__GNUC__) || defined(__GNUG__)
|
||
|
#define __GNU_EXTENSION __extension__
|
||
|
#else
|
||
|
#define __GNU_EXTENSION
|
||
|
#endif
|
||
|
#endif /* __extension__ */
|
||
|
|
||
|
#ifndef __ANONYMOUS_DEFINED
|
||
|
#define __ANONYMOUS_DEFINED
|
||
|
#if defined(__GNUC__) || defined(__GNUG__)
|
||
|
#define _ANONYMOUS_UNION __extension__
|
||
|
#define _ANONYMOUS_STRUCT __extension__
|
||
|
#else
|
||
|
#define _ANONYMOUS_UNION
|
||
|
#define _ANONYMOUS_STRUCT
|
||
|
#endif
|
||
|
#ifndef NONAMELESSUNION
|
||
|
#define _UNION_NAME(x)
|
||
|
#define _STRUCT_NAME(x)
|
||
|
#else /* NONAMELESSUNION */
|
||
|
#define _UNION_NAME(x) x
|
||
|
#define _STRUCT_NAME(x) x
|
||
|
#endif
|
||
|
#endif /* __ANONYMOUS_DEFINED */
|
||
|
|
||
|
#ifndef DUMMYUNIONNAME
|
||
|
# ifdef NONAMELESSUNION
|
||
|
# define DUMMYUNIONNAME u
|
||
|
# define DUMMYUNIONNAME1 u1 /* Wine uses this variant */
|
||
|
# define DUMMYUNIONNAME2 u2
|
||
|
# define DUMMYUNIONNAME3 u3
|
||
|
# define DUMMYUNIONNAME4 u4
|
||
|
# define DUMMYUNIONNAME5 u5
|
||
|
# define DUMMYUNIONNAME6 u6
|
||
|
# define DUMMYUNIONNAME7 u7
|
||
|
# define DUMMYUNIONNAME8 u8
|
||
|
# define DUMMYUNIONNAME9 u9
|
||
|
# else /* NONAMELESSUNION */
|
||
|
# define DUMMYUNIONNAME
|
||
|
# define DUMMYUNIONNAME1 /* Wine uses this variant */
|
||
|
# define DUMMYUNIONNAME2
|
||
|
# define DUMMYUNIONNAME3
|
||
|
# define DUMMYUNIONNAME4
|
||
|
# define DUMMYUNIONNAME5
|
||
|
# define DUMMYUNIONNAME6
|
||
|
# define DUMMYUNIONNAME7
|
||
|
# define DUMMYUNIONNAME8
|
||
|
# define DUMMYUNIONNAME9
|
||
|
# endif
|
||
|
#endif /* DUMMYUNIONNAME */
|
||
|
|
||
|
#if !defined(DUMMYUNIONNAME1) /* MinGW does not define this one */
|
||
|
# ifdef NONAMELESSUNION
|
||
|
# define DUMMYUNIONNAME1 u1 /* Wine uses this variant */
|
||
|
# else
|
||
|
# define DUMMYUNIONNAME1 /* Wine uses this variant */
|
||
|
# endif
|
||
|
#endif /* DUMMYUNIONNAME1 */
|
||
|
|
||
|
#ifndef DUMMYSTRUCTNAME
|
||
|
# ifdef NONAMELESSUNION
|
||
|
# define DUMMYSTRUCTNAME s
|
||
|
# define DUMMYSTRUCTNAME1 s1 /* Wine uses this variant */
|
||
|
# define DUMMYSTRUCTNAME2 s2
|
||
|
# define DUMMYSTRUCTNAME3 s3
|
||
|
# define DUMMYSTRUCTNAME4 s4
|
||
|
# define DUMMYSTRUCTNAME5 s5
|
||
|
# else
|
||
|
# define DUMMYSTRUCTNAME
|
||
|
# define DUMMYSTRUCTNAME1 /* Wine uses this variant */
|
||
|
# define DUMMYSTRUCTNAME2
|
||
|
# define DUMMYSTRUCTNAME3
|
||
|
# define DUMMYSTRUCTNAME4
|
||
|
# define DUMMYSTRUCTNAME5
|
||
|
# endif
|
||
|
#endif /* DUMMYSTRUCTNAME */
|
||
|
|
||
|
/* These are for compatibility with the Wine source tree */
|
||
|
|
||
|
#ifndef WINELIB_NAME_AW
|
||
|
# ifdef __MINGW_NAME_AW
|
||
|
# define WINELIB_NAME_AW __MINGW_NAME_AW
|
||
|
# else
|
||
|
# ifdef UNICODE
|
||
|
# define WINELIB_NAME_AW(func) func##W
|
||
|
# else
|
||
|
# define WINELIB_NAME_AW(func) func##A
|
||
|
# endif
|
||
|
# endif
|
||
|
#endif /* WINELIB_NAME_AW */
|
||
|
|
||
|
#ifndef DECL_WINELIB_TYPE_AW
|
||
|
# ifdef __MINGW_TYPEDEF_AW
|
||
|
# define DECL_WINELIB_TYPE_AW __MINGW_TYPEDEF_AW
|
||
|
# else
|
||
|
# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
|
||
|
# endif
|
||
|
#endif /* DECL_WINELIB_TYPE_AW */
|
||
|
|