1 /* glibconfig.h.win32 */
2 /* Handcrafted for Microsoft C and gcc -mno-cygwin ("mingw32"). */
4 #ifndef __G_LIBCONFIG_H__
5 #define __G_LIBCONFIG_H__
10 /* Make MSVC more pedantic, this is a recommended pragma list
11 * from _Win32_Programming_ by Rector and Newcomer.
13 #pragma warning(error:4002)
14 #pragma warning(error:4003)
15 #pragma warning(1:4010)
16 #pragma warning(error:4013)
17 #pragma warning(1:4016)
18 #pragma warning(error:4020)
19 #pragma warning(error:4021)
20 #pragma warning(error:4027)
21 #pragma warning(error:4029)
22 #pragma warning(error:4033)
23 #pragma warning(error:4035)
24 #pragma warning(error:4045)
25 #pragma warning(error:4047)
26 #pragma warning(error:4049)
27 #pragma warning(error:4053)
28 #pragma warning(error:4071)
29 #pragma warning(disable:4101)
30 #pragma warning(error:4150)
32 #pragma warning(disable:4244) /* No possible loss of data warnings */
33 #pragma warning(disable:4305) /* No truncation from int to char warnings */
39 #define G_MINFLOAT FLT_MIN
40 #define G_MAXFLOAT FLT_MAX
41 #define G_MINDOUBLE DBL_MIN
42 #define G_MAXDOUBLE DBL_MAX
43 #define G_MINSHORT SHRT_MIN
44 #define G_MAXSHORT SHRT_MAX
45 #define G_MAXUSHORT USHRT_MAX
46 #define G_MININT INT_MIN
47 #define G_MAXINT INT_MAX
48 #define G_MAXUINT UINT_MAX
49 #define G_MINLONG LONG_MIN
50 #define G_MAXLONG LONG_MAX
51 #define G_MAXULONG ULONG_MAX
55 typedef signed char gint8;
56 typedef unsigned char guint8;
57 typedef signed short gint16;
58 typedef unsigned short guint16;
59 #define G_GINT16_FORMAT "hi"
60 #define G_GUINT16_FORMAT "hu"
61 typedef signed int gint32;
62 typedef unsigned int guint32;
63 #define G_GINT32_FORMAT "i"
64 #define G_GUINT32_FORMAT "u"
66 #define G_HAVE_GINT64 1
68 /* These are compiler specific */
70 typedef __int64 gint64;
71 typedef unsigned __int64 guint64;
72 #define G_GINT64_CONSTANT(val) (val##i64)
74 typedef long long gint64;
75 typedef unsigned long long guint64;
76 #define G_GINT64_CONSTANT(val) (val##LL)
77 #define G_HAVE_ISO_VARARGS 1
80 /* These depend on the C library. Using this file means the we
81 * use the (bundled) Microsoft msvcrt.dll.
83 #define G_GINT64_FORMAT "I64i"
84 #define G_GUINT64_FORMAT "I64u"
86 #define GLIB_SIZEOF_VOID_P 4
87 #define GLIB_SIZEOF_LONG 4
89 typedef gint32 gssize;
90 typedef guint32 gsize;
92 #define GPOINTER_TO_INT(p) ((gint)(p))
93 #define GPOINTER_TO_UINT(p) ((guint)(p))
95 #define GINT_TO_POINTER(i) ((gpointer)(i))
96 #define GUINT_TO_POINTER(u) ((gpointer)(u))
98 #define g_ATEXIT(proc) (atexit (proc))
100 #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
102 #define GLIB_MAJOR_VERSION @GLIB_MAJOR_VERSION@
103 #define GLIB_MINOR_VERSION @GLIB_MINOR_VERSION@
104 #define GLIB_MICRO_VERSION @GLIB_MICRO_VERSION@
107 #define G_PLATFORM_WIN32
110 #define G_HAVE_INLINE 1
111 #else /* !__cplusplus */
112 #define G_HAVE___INLINE 1
115 #define G_THREADS_ENABLED
116 #define G_THREADS_IMPL_WIN32
117 typedef struct _GMutex* GStaticMutex;
118 #define G_STATIC_MUTEX_INIT NULL
119 #define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
120 /* This represents a system thread as used by the implementation. An
121 * alien implementaion, as loaded by g_thread_init can only count on
122 * "sizeof (gpointer)" bytes to store their info. We however need more
123 * for some of our native implementations. */
124 typedef union _GSystemThread GSystemThread;
127 /* The size of the data array should be sizeof (pthread_t) */
128 /* This value corresponds to the 1999-05-30 version of pthreads-win32 */
135 #define GINT16_TO_LE(val) ((gint16) (val))
136 #define GUINT16_TO_LE(val) ((guint16) (val))
137 #define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
138 #define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
140 #define GINT32_TO_LE(val) ((gint32) (val))
141 #define GUINT32_TO_LE(val) ((guint32) (val))
142 #define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
143 #define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
145 #define GINT64_TO_LE(val) ((gint64) (val))
146 #define GUINT64_TO_LE(val) ((guint64) (val))
147 #define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
148 #define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
150 #define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
151 #define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
152 #define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
153 #define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
155 #define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
156 #define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
157 #define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
158 #define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
159 #define G_BYTE_ORDER G_LITTLE_ENDIAN
161 #define GLIB_SYSDEF_POLLIN = 1
162 #define GLIB_SYSDEF_POLLOUT = 4
163 #define GLIB_SYSDEF_POLLPRI = 2
164 #define GLIB_SYSDEF_POLLERR = 8
165 #define GLIB_SYSDEF_POLLHUP = 16
166 #define GLIB_SYSDEF_POLLNVAL = 32
168 #define G_MODULE_SUFFIX "dll"
172 #endif /* __G_LIBCONFIG_H__ */