1 /* glibconfig.h.win32 */
2 /* Handcrafted for Microsoft C. */
9 #endif /* __cplusplus */
12 /* Make MSVC more pedantic, this is a recommended pragma list
13 * from _Win32_Programming_ by Rector and Newcomer.
15 #pragma warning(error:4002)
16 #pragma warning(error:4003)
17 #pragma warning(1:4010)
18 #pragma warning(error:4013)
19 #pragma warning(1:4016)
20 #pragma warning(error:4020)
21 #pragma warning(error:4021)
22 #pragma warning(error:4027)
23 #pragma warning(error:4029)
24 #pragma warning(error:4033)
25 #pragma warning(error:4035)
26 #pragma warning(error:4045)
27 #pragma warning(error:4047)
28 #pragma warning(error:4049)
29 #pragma warning(error:4053)
30 #pragma warning(error:4071)
31 #pragma warning(disable:4101)
32 #pragma warning(error:4150)
34 #pragma warning(disable:4244) /* No possible loss of data warnings */
35 #pragma warning(disable:4305) /* No truncation from int to char warnings */
41 #define G_MINFLOAT FLT_MIN
42 #define G_MAXFLOAT FLT_MAX
43 #define G_MINDOUBLE DBL_MIN
44 #define G_MAXDOUBLE DBL_MAX
45 #define G_MINSHORT SHRT_MIN
46 #define G_MAXSHORT SHRT_MAX
47 #define G_MININT INT_MIN
48 #define G_MAXINT INT_MAX
49 #define G_MINLONG LONG_MIN
50 #define G_MAXLONG LONG_MAX
52 typedef signed char gint8;
53 typedef unsigned char guint8;
54 typedef signed short gint16;
55 typedef unsigned short guint16;
56 typedef signed int gint32;
57 typedef unsigned int guint32;
59 #define G_HAVE_GINT64 1
61 typedef __int64 gint64;
62 typedef unsigned __int64 guint64;
64 #define G_GINT64_CONSTANT(val) (val##i64)
66 #define GPOINTER_TO_INT(p) ((gint)(p))
67 #define GPOINTER_TO_UINT(p) ((guint)(p))
69 #define GINT_TO_POINTER(i) ((gpointer)(i))
70 #define GUINT_TO_POINTER(u) ((gpointer)(u))
72 #define g_ATEXIT(proc) (atexit (proc))
74 #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
76 #define G_HAVE_ALLOCA 1
77 #define alloca _alloca
79 #define GLIB_MAJOR_VERSION @GLIB_MAJOR_VERSION@
80 #define GLIB_MINOR_VERSION @GLIB_MINOR_VERSION@
81 #define GLIB_MICRO_VERSION @GLIB_MICRO_VERSION@
84 #define G_HAVE_INLINE 1
85 #else /* !__cplusplus */
86 #define G_HAVE___INLINE 1
89 #define G_THREADS_ENABLED
91 * The following program can be used to determine the magic values below:
93 * #include <pthread.h>
94 * main(int argc, char **argv)
97 * pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
98 * printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
99 * printf ("PTHREAD_MUTEX_INITIALIZER = ");
100 * for (i = 0; i < sizeof (pthread_mutex_t); i++)
101 * printf ("%u, ", ((unsigned char *) &m)[i]);
107 #define G_THREADS_IMPL_POSIX
108 typedef struct _GStaticMutex GStaticMutex;
111 struct _GMutex *runtime_mutex;
113 /* The size of the pad array should be sizeof (pthread_mutext_t) */
114 /* This value corresponds to the 1999-04-07 version of pthreads-win32 */
121 /* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
122 #define G_STATIC_MUTEX_INIT { NULL, { { 255, 255, 255, 255 } } }
123 #define g_static_mutex_get_mutex(mutex) \
124 (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
125 g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
127 #define G_BYTE_ORDER G_LITTLE_ENDIAN
129 #define GINT16_TO_LE(val) ((gint16) (val))
130 #define GUINT16_TO_LE(val) ((guint16) (val))
131 #define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
132 #define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
134 #define GINT32_TO_LE(val) ((gint32) (val))
135 #define GUINT32_TO_LE(val) ((guint32) (val))
136 #define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
137 #define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
139 #define GINT64_TO_LE(val) ((gint64) (val))
140 #define GUINT64_TO_LE(val) ((guint64) (val))
141 #define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
142 #define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
144 #define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
145 #define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
146 #define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
147 #define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
149 #define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
150 #define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
151 #define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
152 #define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
154 #define GLIB_SYSDEF_POLLIN = 1
155 #define GLIB_SYSDEF_POLLOUT = 4
156 #define GLIB_SYSDEF_POLLPRI = 2
157 #define GLIB_SYSDEF_POLLERR = 8
158 #define GLIB_SYSDEF_POLLHUP = 16
159 #define GLIB_SYSDEF_POLLNVAL = 32
161 #define G_HAVE_WCHAR_H 1
162 #define G_HAVE_WCTYPE_H 1
164 /* Define if this is Win32, possibly using the Cygwin emulation layer. */
167 /* Define if this is Win32 without Cygwin. */
168 #define NATIVE_WIN32 1
172 #endif /* __cplusplus */
174 #endif /* GLIBCONFIG_H */