1/* glibconfig.h.win32.in Merged from two versions generated by configure for gcc and MSVC.  */
2/* glibconfig.h
3 *
4 * This is a generated file.  Please modify 'configure.in'
5 */
6
7#ifndef __G_LIBCONFIG_H__
8#define __G_LIBCONFIG_H__
9
10#include <glib/gmacros.h>
11
12#include <limits.h>
13#include <float.h>
14
15G_BEGIN_DECLS
16
17#define G_MINFLOAT	FLT_MIN
18#define G_MAXFLOAT	FLT_MAX
19#define G_MINDOUBLE	DBL_MIN
20#define G_MAXDOUBLE	DBL_MAX
21#define G_MINSHORT	SHRT_MIN
22#define G_MAXSHORT	SHRT_MAX
23#define G_MAXUSHORT	USHRT_MAX
24#define G_MININT	INT_MIN
25#define G_MAXINT	INT_MAX
26#define G_MAXUINT	UINT_MAX
27#define G_MINLONG	LONG_MIN
28#define G_MAXLONG	LONG_MAX
29#define G_MAXULONG	ULONG_MAX
30
31typedef signed char gint8;
32typedef unsigned char guint8;
33typedef signed short gint16;
34typedef unsigned short guint16;
35#define G_GINT16_MODIFIER "h"
36#define G_GINT16_FORMAT "hi"
37#define G_GUINT16_FORMAT "hu"
38typedef signed int gint32;
39typedef unsigned int guint32;
40#define G_GINT32_MODIFIER ""
41#define G_GINT32_FORMAT "i"
42#define G_GUINT32_FORMAT "u"
43#define G_HAVE_GINT64 1          /* deprecated, always true */
44
45#ifndef _MSC_VER
46G_GNUC_EXTENSION typedef signed long long gint64;
47G_GNUC_EXTENSION typedef unsigned long long guint64;
48#else /* _MSC_VER */
49typedef signed __int64 gint64;
50typedef unsigned __int64 guint64;
51#endif /* _MSC_VER */
52
53#ifndef _MSC_VER
54#define G_GINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##LL))
55#else /* _MSC_VER */
56#define G_GINT64_CONSTANT(val)	(val##i64)
57#endif /* _MSC_VER */
58#ifndef _MSC_VER
59#define G_GUINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##ULL))
60#else /* _MSC_VER */
61#define G_GUINT64_CONSTANT(val)	(val##Ui64)
62#endif /* _MSC_VER */
63#define G_GINT64_MODIFIER "I64"
64#define G_GINT64_FORMAT "I64i"
65#define G_GUINT64_FORMAT "I64u"
66
67#if defined(_WIN64) || defined(_M_X64) || defined(_M_AMD64)
68
69#define GLIB_SIZEOF_VOID_P 8
70#define GLIB_SIZEOF_LONG   4
71#define GLIB_SIZEOF_SIZE_T 8
72
73typedef signed long long gssize;
74typedef unsigned long long gsize;
75#define G_GSIZE_MODIFIER "I64"
76#define G_GSSIZE_FORMAT "I64d"
77#define G_GSIZE_FORMAT "I64u"
78
79#define G_MAXSIZE	G_MAXUINT64
80#define G_MINSSIZE	G_MININT64
81#define G_MAXSSIZE	G_MAXINT64
82
83#else
84
85#define GLIB_SIZEOF_VOID_P 4
86#define GLIB_SIZEOF_LONG   4
87#define GLIB_SIZEOF_SIZE_T 4
88
89typedef signed int gssize;
90typedef unsigned int gsize;
91#define G_GSIZE_MODIFIER ""
92#define G_GSSIZE_FORMAT "i"
93#define G_GSIZE_FORMAT "u"
94
95#define G_MAXSIZE	G_MAXUINT
96#define G_MINSSIZE	G_MININT
97#define G_MAXSSIZE	G_MAXINT
98
99#endif
100
101typedef gint64 goffset;
102#define G_MINOFFSET	G_MININT64
103#define G_MAXOFFSET	G_MAXINT64
104
105#ifndef _WIN64
106
107#define GPOINTER_TO_INT(p)	((gint)   (p))
108#define GPOINTER_TO_UINT(p)	((guint)  (p))
109
110#define GINT_TO_POINTER(i)	((gpointer)  (i))
111#define GUINT_TO_POINTER(u)	((gpointer)  (u))
112
113typedef signed int gintptr;
114typedef unsigned int guintptr;
115
116#else
117
118#define GPOINTER_TO_INT(p)	((gint)  (gint64) (p))
119#define GPOINTER_TO_UINT(p)	((guint) (guint64) (p))
120
121#define GINT_TO_POINTER(i)	((gpointer) (gint64) (i))
122#define GUINT_TO_POINTER(u)	((gpointer) (guint64) (u))
123
124#ifndef _MSC_VER
125typedef signed long long gintptr;
126typedef unsigned long long guintptr;
127#else
128typedef signed __int64 gintptr;
129typedef unsigned __int64 guintptr;
130#endif
131
132#endif
133
134#ifdef NeXT /* @#%@! NeXTStep */
135# define g_ATEXIT(proc)	(!atexit (proc))
136#else
137# define g_ATEXIT(proc)	(atexit (proc))
138#endif
139
140#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END
141
142#define GLIB_MAJOR_VERSION @GLIB_MAJOR_VERSION@
143#define GLIB_MINOR_VERSION @GLIB_MINOR_VERSION@
144#define GLIB_MICRO_VERSION @GLIB_MICRO_VERSION@
145
146#define G_OS_WIN32
147#define G_PLATFORM_WIN32
148@GLIB_WIN32_STATIC_COMPILATION_DEFINE@
149
150#ifndef _MSC_VER
151#define G_VA_COPY	va_copy
152#endif /* not _MSC_VER */
153
154#ifdef	__cplusplus
155#define	G_HAVE_INLINE	1
156#else	/* !__cplusplus */
157#ifndef _MSC_VER
158#define G_HAVE_INLINE 1
159#endif /* _MSC_VER */
160#define G_HAVE___INLINE 1
161#if !defined(_MSC_VER) && !defined(__DMC__)
162#define G_HAVE___INLINE__ 1
163#endif /* !_MSC_VER and !__DMC__ */
164#endif	/* !__cplusplus */
165
166#define G_CAN_INLINE	1
167
168#ifndef _MSC_VER
169#define G_HAVE_ISO_VARARGS 1
170
171/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
172 * is passed ISO vararg support is turned off, and there is no work
173 * around to turn it on, so we unconditionally turn it off.
174 */
175#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
176#  undef G_HAVE_ISO_VARARGS
177#endif
178
179#define G_HAVE_GNUC_VARARGS 1
180#else /* _MSC_VER */
181/* varargs macros available since msvc8 (vs2005) */
182#  if _MSC_VER >= 1400
183#    define G_HAVE_ISO_VARARGS 1
184#   endif
185#endif /* not _MSC_VER */
186#define G_HAVE_GROWING_STACK 0
187
188#define G_GNUC_INTERNAL
189
190#define G_THREADS_ENABLED
191#define G_THREADS_IMPL_WIN32
192typedef struct _GMutex* GStaticMutex;
193#define G_STATIC_MUTEX_INIT NULL
194#define g_static_mutex_get_mutex(mutex) \
195  (g_static_mutex_get_mutex_impl_shortcut (mutex))
196/* This represents a system thread as used by the implementation. An
197 * alien implementaion, as loaded by g_thread_init can only count on
198 * "sizeof (gpointer)" bytes to store their info. We however need more
199 * for some of our native implementations. */
200typedef union _GSystemThread GSystemThread;
201union _GSystemThread
202{
203#ifndef _WIN64
204  char   data[4];
205#else
206  char   data[8];
207#endif
208  double dummy_double;
209  void  *dummy_pointer;
210  long   dummy_long;
211};
212
213#define GINT16_TO_LE(val)	((gint16) (val))
214#define GUINT16_TO_LE(val)	((guint16) (val))
215#define GINT16_TO_BE(val)	((gint16) GUINT16_SWAP_LE_BE (val))
216#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
217#define GINT32_TO_LE(val)	((gint32) (val))
218#define GUINT32_TO_LE(val)	((guint32) (val))
219#define GINT32_TO_BE(val)	((gint32) GUINT32_SWAP_LE_BE (val))
220#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
221#define GINT64_TO_LE(val)	((gint64) (val))
222#define GUINT64_TO_LE(val)	((guint64) (val))
223#define GINT64_TO_BE(val)	((gint64) GUINT64_SWAP_LE_BE (val))
224#define GUINT64_TO_BE(val)	(GUINT64_SWAP_LE_BE (val))
225#define GLONG_TO_LE(val)	((glong) GINT32_TO_LE (val))
226#define GULONG_TO_LE(val)	((gulong) GUINT32_TO_LE (val))
227#define GLONG_TO_BE(val)	((glong) GINT32_TO_BE (val))
228#define GULONG_TO_BE(val)	((gulong) GUINT32_TO_BE (val))
229#define GINT_TO_LE(val)		((gint) GINT32_TO_LE (val))
230#define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
231#define GINT_TO_BE(val)		((gint) GINT32_TO_BE (val))
232#define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
233#define G_BYTE_ORDER G_LITTLE_ENDIAN
234
235#define GLIB_SYSDEF_POLLIN =1
236#define GLIB_SYSDEF_POLLOUT =4
237#define GLIB_SYSDEF_POLLPRI =2
238#define GLIB_SYSDEF_POLLHUP =16
239#define GLIB_SYSDEF_POLLERR =8
240#define GLIB_SYSDEF_POLLNVAL =32
241
242#define G_MODULE_SUFFIX "dll"
243
244/* A GPid is an abstraction for a process "handle". It is *not* an
245 * abstraction for a process identifier in general. GPid is used in
246 * GLib only for descendant processes spawned with the g_spawn*
247 * functions. On POSIX there is no "process handle" concept as such,
248 * but on Windows a GPid is a handle to a process, a kind of pointer,
249 * not a process identifier.
250 */
251typedef void * GPid;
252
253G_END_DECLS
254
255#endif /* GLIBCONFIG_H */
256