#ifndef _FCMUTEX_H_
#define _FCMUTEX_H_
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#define FC_STMT_START …
#define FC_STMT_END …
#if 0
#elif !defined(FC_NO_MT) && defined(_MSC_VER) || defined(__MINGW32__)
#include "fcwindows.h"
typedef CRITICAL_SECTION fc_mutex_impl_t;
#define FC_MUTEX_IMPL_INIT …
#define fc_mutex_impl_init …
#define fc_mutex_impl_lock …
#define fc_mutex_impl_unlock …
#define fc_mutex_impl_finish …
#elif !defined(FC_NO_MT) && (defined(HAVE_PTHREAD) || defined(__APPLE__))
#include <pthread.h>
fc_mutex_impl_t;
#define FC_MUTEX_IMPL_INIT …
#define fc_mutex_impl_init(M) …
#define fc_mutex_impl_lock(M) …
#define fc_mutex_impl_unlock(M) …
#define fc_mutex_impl_finish(M) …
#elif !defined(FC_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES)
#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_YIELD)
# include <sched.h>
#define FC_SCHED_YIELD …
#else
#define FC_SCHED_YIELD …
#endif
typedef volatile int fc_mutex_impl_t;
#define FC_MUTEX_IMPL_INIT …
#define fc_mutex_impl_init …
#define fc_mutex_impl_lock …
#define fc_mutex_impl_unlock …
#define fc_mutex_impl_finish …
#elif !defined(FC_NO_MT)
#if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_YIELD)
# include <sched.h>
#define FC_SCHED_YIELD …
#else
#define FC_SCHED_YIELD …
#endif
#define FC_MUTEX_INT_NIL …
typedef volatile int fc_mutex_impl_t;
#define FC_MUTEX_IMPL_INIT …
#define fc_mutex_impl_init …
#define fc_mutex_impl_lock …
#define fc_mutex_impl_unlock …
#define fc_mutex_impl_finish …
#else
typedef int fc_mutex_impl_t;
#define FC_MUTEX_IMPL_INIT …
#define fc_mutex_impl_init …
#define fc_mutex_impl_lock …
#define fc_mutex_impl_unlock …
#define fc_mutex_impl_finish …
#endif
#define FC_MUTEX_INIT …
FcMutex;
static inline void FcMutexInit (FcMutex *m) { … }
static inline void FcMutexLock (FcMutex *m) { … }
static inline void FcMutexUnlock (FcMutex *m) { … }
static inline void FcMutexFinish (FcMutex *m) { … }
#endif