BSON-XS
view release on metacpan or search on metacpan
bson/bson-compat.h view on Meta::CPAN
#include <string.h>
#include <time.h>
BSON_BEGIN_DECLS
#ifdef _MSC_VER
# include "bson-stdint-win32.h"
# ifndef __cplusplus
/* benign redefinition of type */
# pragma warning (disable :4142)
# ifndef _SSIZE_T_DEFINED
# define _SSIZE_T_DEFINED
typedef SSIZE_T ssize_t;
# endif
typedef SIZE_T size_t;
# pragma warning (default :4142)
# else
/*
* MSVC++ does not include ssize_t, just size_t.
* So we need to synthesize that as well.
*/
# pragma warning (disable :4142)
# ifndef _SSIZE_T_DEFINED
# define _SSIZE_T_DEFINED
typedef SSIZE_T ssize_t;
# endif
# pragma warning (default :4142)
# endif
# define PRIi32 "d"
# define PRId32 "d"
# define PRIu32 "u"
# define PRIi64 "I64i"
# define PRId64 "I64i"
# define PRIu64 "I64u"
#else
# include "bson-stdint.h"
# include <inttypes.h>
#endif
#if defined(__MINGW32__) && ! defined(INIT_ONCE_STATIC_INIT)
# define INIT_ONCE_STATIC_INIT RTL_RUN_ONCE_INIT
typedef RTL_RUN_ONCE INIT_ONCE;
#endif
#ifdef BSON_HAVE_STDBOOL_H
# include <stdbool.h>
#elif !defined(__bool_true_false_are_defined)
# ifndef __cplusplus
typedef signed char bool;
# define false 0
# define true 1
# endif
# define __bool_true_false_are_defined 1
#endif
#if defined(__GNUC__)
# if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
# define bson_sync_synchronize() __sync_synchronize()
# elif defined(__i386__ ) || defined( __i486__ ) || defined( __i586__ ) || \
defined( __i686__ ) || defined( __x86_64__ )
# define bson_sync_synchronize() asm volatile("mfence":::"memory")
# else
# define bson_sync_synchronize() asm volatile("sync":::"memory")
# endif
#elif defined(_MSC_VER)
# define bson_sync_synchronize() MemoryBarrier()
#endif
#if !defined(va_copy) && defined(_MSC_VER)
# define va_copy(dst,src) ((dst) = (src))
#endif
#if !defined(va_copy) && defined(__GNUC__) && __GNUC__ < 3
# define va_copy(dst,src) __va_copy(dst, src)
#endif
BSON_END_DECLS
#endif /* BSON_COMPAT_H */
( run in 0.535 second using v1.01-cache-2.11-cpan-5a3173703d6 )