Save errno before calling other funcs that potentially alter it. Bug
[platform/upstream/glib.git] / glibconfig.h.win32.in
index 9680154..b7e8b4c 100644 (file)
@@ -1,43 +1,19 @@
-/* glibconfig.h.win32 */
-/* Handcrafted for Microsoft C and gcc -mno-cygwin ("mingw32"). */
+/* glibconfig.h.win32.in Merged from two versions generated by configure for gcc and MSVC.  */
+/* glibconfig.h
+ *
+ * This is a generated file.  Please modify 'configure.in'
+ */
 
-#ifndef GLIBCONFIG_H
-#define GLIBCONFIG_H
+#ifndef __G_LIBCONFIG_H__
+#define __G_LIBCONFIG_H__
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#ifdef _MSC_VER
-/* Make MSVC more pedantic, this is a recommended pragma list
- * from _Win32_Programming_ by Rector and Newcomer.
- */
-#pragma warning(error:4002)
-#pragma warning(error:4003)
-#pragma warning(1:4010)
-#pragma warning(error:4013)
-#pragma warning(1:4016)
-#pragma warning(error:4020)
-#pragma warning(error:4021)
-#pragma warning(error:4027)
-#pragma warning(error:4029)
-#pragma warning(error:4033)
-#pragma warning(error:4035)
-#pragma warning(error:4045)
-#pragma warning(error:4047)
-#pragma warning(error:4049)
-#pragma warning(error:4053)
-#pragma warning(error:4071)
-#pragma warning(disable:4101)
-#pragma warning(error:4150)
-
-#pragma warning(disable:4244)  /* No possible loss of data warnings */
-#pragma warning(disable:4305)   /* No truncation from int to char warnings */
-#endif /* _MSC_VER */
+#include <glib/gmacros.h>
 
 #include <limits.h>
 #include <float.h>
 
+G_BEGIN_DECLS
+
 #define G_MINFLOAT     FLT_MIN
 #define G_MAXFLOAT     FLT_MAX
 #define G_MINDOUBLE    DBL_MIN
@@ -56,100 +32,124 @@ typedef signed char gint8;
 typedef unsigned char guint8;
 typedef signed short gint16;
 typedef unsigned short guint16;
+#define G_GINT16_MODIFIER "h"
 #define G_GINT16_FORMAT "hi"
 #define G_GUINT16_FORMAT "hu"
 typedef signed int gint32;
 typedef unsigned int guint32;
+#define G_GINT32_MODIFIER ""
 #define G_GINT32_FORMAT "i"
 #define G_GUINT32_FORMAT "u"
+#define G_HAVE_GINT64 1          /* deprecated, always true */
 
-#define G_HAVE_GINT64 1
-
-/* These are compiler specific */
-#ifdef _MSC_VER
-typedef __int64 gint64;
+#ifndef _MSC_VER
+G_GNUC_EXTENSION typedef signed long long gint64;
+G_GNUC_EXTENSION typedef unsigned long long guint64;
+#else /* _MSC_VER */
+typedef signed __int64 gint64;
 typedef unsigned __int64 guint64;
-#define G_GINT64_CONSTANT(val) (val##i64)
-#elif __GNUC__
-typedef long long gint64;
-typedef unsigned long long guint64;
-#define G_GINT64_CONSTANT(val) (val##LL)
-#endif
+#endif /* _MSC_VER */
 
-/* These depend on the C library. Using this file means the we
- * use the (bundled) Microsoft msvcrt.dll.
- */
+#ifndef _MSC_VER
+#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL))
+#else /* _MSC_VER */
+#define G_GINT64_CONSTANT(val) (val##i64)
+#endif /* _MSC_VER */
+#ifndef _MSC_VER
+#define G_GUINT64_CONSTANT(val)        (G_GNUC_EXTENSION (val##ULL))
+#else /* _MSC_VER */
+#define G_GUINT64_CONSTANT(val)        (val##Ui64)
+#endif /* _MSC_VER */
+#define G_GINT64_MODIFIER "I64"
 #define G_GINT64_FORMAT "I64i"
 #define G_GUINT64_FORMAT "I64u"
 
-typedef gint32 gssize;
-typedef guint32 gsize;
+#define GLIB_SIZEOF_VOID_P 4
+#define GLIB_SIZEOF_LONG   4
+#define GLIB_SIZEOF_SIZE_T 4
 
-#define GPOINTER_TO_INT(p)     ((gint)(p))
-#define GPOINTER_TO_UINT(p)    ((guint)(p))
+typedef signed int gssize;
+typedef unsigned int gsize;
+#define G_GSIZE_MODIFIER ""
+#define G_GSSIZE_FORMAT "i"
+#define G_GSIZE_FORMAT "u"
 
-#define GINT_TO_POINTER(i)     ((gpointer)(i))
-#define GUINT_TO_POINTER(u)    ((gpointer)(u))
+#define G_MAXSIZE      G_MAXUINT
+#define G_MINSSIZE     G_MININT
+#define G_MAXSSIZE     G_MAXINT
 
-#define g_ATEXIT(proc) (atexit (proc))
+typedef gint64 goffset;
+#define G_MINOFFSET    G_MININT64
+#define G_MAXOFFSET    G_MAXINT64
 
-#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
 
-#define G_HAVE_ALLOCA 1
-#ifdef _MSC_VER
-#define alloca _alloca
+#define GPOINTER_TO_INT(p)     ((gint)   (p))
+#define GPOINTER_TO_UINT(p)    ((guint)  (p))
+
+#define GINT_TO_POINTER(i)     ((gpointer)  (i))
+#define GUINT_TO_POINTER(u)    ((gpointer)  (u))
+
+#ifdef NeXT /* @#%@! NeXTStep */
+# define g_ATEXIT(proc)        (!atexit (proc))
+#else
+# define g_ATEXIT(proc)        (atexit (proc))
 #endif
 
+#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END
+
 #define GLIB_MAJOR_VERSION @GLIB_MAJOR_VERSION@
 #define GLIB_MINOR_VERSION @GLIB_MINOR_VERSION@
 #define GLIB_MICRO_VERSION @GLIB_MICRO_VERSION@
 
 #define G_OS_WIN32
+#define G_PLATFORM_WIN32
+
+#ifndef _MSC_VER
+#define G_VA_COPY      va_copy
+#endif /* not _MSC_VER */
 
 #ifdef __cplusplus
 #define        G_HAVE_INLINE   1
 #else  /* !__cplusplus */
+#ifndef _MSC_VER
+#define G_HAVE_INLINE 1
+#endif /* _MSC_VER */
 #define G_HAVE___INLINE 1
-#endif
+#if !defined(_MSC_VER) && !defined(__DMC__)
+#define G_HAVE___INLINE__ 1
+#endif /* !_MSC_VER and !__DMC__ */
+#endif /* !__cplusplus */
 
-#define G_THREADS_ENABLED
-/*
- * The following program can be used to determine the magic values below:
- * #include <stdio.h>
- * #include <pthread.h>
- * main(int argc, char **argv)
- * {
- *   int i;
- *   pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
- *   printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t));
- *   printf ("sizeof (pthread_t) = %d\n", sizeof (pthread_t));
- *   printf ("PTHREAD_MUTEX_INITIALIZER = ");
- *   for (i = 0; i < sizeof (pthread_mutex_t); i++)
- *     printf ("%u, ", ((unsigned char *) &m)[i]);
- *   printf ("\n");
- *   exit(0);
- * }
+#define G_CAN_INLINE   1
+
+#ifndef _MSC_VER
+#define G_HAVE_ISO_VARARGS 1
+
+/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
+ * is passed ISO vararg support is turned off, and there is no work
+ * around to turn it on, so we unconditionally turn it off.
  */
+#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
+#  undef G_HAVE_ISO_VARARGS
+#endif
 
-#define G_THREADS_IMPL_POSIX
-typedef struct _GStaticMutex GStaticMutex;
-struct _GStaticMutex
-{
-  struct _GMutex *runtime_mutex;
-  union {
-    /* The size of the pad array should be sizeof (pthread_mutex_t) */
-    /* This value corresponds to the 1999-05-30 version of pthreads-win32 */
-    char   pad[4];
-    double dummy_double;
-    void  *dummy_pointer;
-    long   dummy_long;
-  } aligned_pad_u;
-};
-/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */
-#define        G_STATIC_MUTEX_INIT     { NULL, { { 255, 255, 255, 255 } } }
-#define        g_static_mutex_get_mutex(mutex) \
-  (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
-   g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
+#define G_HAVE_GNUC_VARARGS 1
+#else /* _MSC_VER */
+/* varargs macros available since msvc8 (vs2005) */
+#  if _MSC_VER >= 1400
+#    define G_HAVE_ISO_VARARGS 1
+#   endif
+#endif /* not _MSC_VER */
+#define G_HAVE_GROWING_STACK 0
+
+#define G_GNUC_INTERNAL
+
+#define G_THREADS_ENABLED
+#define G_THREADS_IMPL_WIN32
+typedef struct _GMutex* GStaticMutex;
+#define G_STATIC_MUTEX_INIT NULL
+#define g_static_mutex_get_mutex(mutex) \
+  (g_static_mutex_get_mutex_impl_shortcut (mutex))
 /* This represents a system thread as used by the implementation. An
  * alien implementaion, as loaded by g_thread_init can only count on
  * "sizeof (gpointer)" bytes to store their info. We however need more
@@ -157,8 +157,6 @@ struct _GStaticMutex
 typedef union _GSystemThread GSystemThread;
 union _GSystemThread
 {
-  /* The size of the data array should be sizeof (pthread_t) */
-  /* This value corresponds to the 1999-05-30 version of pthreads-win32 */
   char   data[4];
   double dummy_double;
   void  *dummy_pointer;
@@ -169,40 +167,35 @@ union _GSystemThread
 #define GUINT16_TO_LE(val)     ((guint16) (val))
 #define GINT16_TO_BE(val)      ((gint16) GUINT16_SWAP_LE_BE (val))
 #define GUINT16_TO_BE(val)     (GUINT16_SWAP_LE_BE (val))
-
 #define GINT32_TO_LE(val)      ((gint32) (val))
 #define GUINT32_TO_LE(val)     ((guint32) (val))
 #define GINT32_TO_BE(val)      ((gint32) GUINT32_SWAP_LE_BE (val))
 #define GUINT32_TO_BE(val)     (GUINT32_SWAP_LE_BE (val))
-
 #define GINT64_TO_LE(val)      ((gint64) (val))
 #define GUINT64_TO_LE(val)     ((guint64) (val))
 #define GINT64_TO_BE(val)      ((gint64) GUINT64_SWAP_LE_BE (val))
 #define GUINT64_TO_BE(val)     (GUINT64_SWAP_LE_BE (val))
-
 #define GLONG_TO_LE(val)       ((glong) GINT32_TO_LE (val))
 #define GULONG_TO_LE(val)      ((gulong) GUINT32_TO_LE (val))
 #define GLONG_TO_BE(val)       ((glong) GINT32_TO_BE (val))
 #define GULONG_TO_BE(val)      ((gulong) GUINT32_TO_BE (val))
-
 #define GINT_TO_LE(val)                ((gint) GINT32_TO_LE (val))
 #define GUINT_TO_LE(val)       ((guint) GUINT32_TO_LE (val))
 #define GINT_TO_BE(val)                ((gint) GINT32_TO_BE (val))
 #define GUINT_TO_BE(val)       ((guint) GUINT32_TO_BE (val))
 #define G_BYTE_ORDER G_LITTLE_ENDIAN
 
-#define GLIB_SYSDEF_POLLIN     = 1
-#define GLIB_SYSDEF_POLLOUT    = 4
-#define GLIB_SYSDEF_POLLPRI    = 2
-#define GLIB_SYSDEF_POLLERR    = 8
-#define GLIB_SYSDEF_POLLHUP    = 16
-#define GLIB_SYSDEF_POLLNVAL   = 32
+#define GLIB_SYSDEF_POLLIN =1
+#define GLIB_SYSDEF_POLLOUT =4
+#define GLIB_SYSDEF_POLLPRI =2
+#define GLIB_SYSDEF_POLLHUP =16
+#define GLIB_SYSDEF_POLLERR =8
+#define GLIB_SYSDEF_POLLNVAL =32
+
+#define G_MODULE_SUFFIX "dll"
 
-#define G_HAVE_WCHAR_H 1
-#define G_HAVE_WCTYPE_H 1
+typedef void * GPid;
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
 
 #endif /* GLIBCONFIG_H */