#ifndef _XFUNCPROTO_H_
#define _XFUNCPROTO_H_
#ifndef NeedFunctionPrototypes
#define NeedFunctionPrototypes …
#endif
#ifndef NeedVarargsPrototypes
#define NeedVarargsPrototypes …
#endif
#if NeedFunctionPrototypes
#ifndef NeedNestedPrototypes
#define NeedNestedPrototypes …
#endif
#ifndef _Xconst
#define _Xconst …
#endif
#if !defined(NARROWPROTO) && \
(defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__))
#define NARROWPROTO
#endif
#ifndef FUNCPROTO
#define FUNCPROTO …
#endif
#ifndef NeedWidePrototypes
#ifdef NARROWPROTO
#define NeedWidePrototypes …
#else
#define NeedWidePrototypes …
#endif
#endif
#endif
#ifndef _XFUNCPROTOBEGIN
#if defined(__cplusplus) || defined(c_plusplus)
#define _XFUNCPROTOBEGIN …
#define _XFUNCPROTOEND …
#else
#define _XFUNCPROTOBEGIN
#define _XFUNCPROTOEND
#endif
#endif
#ifndef __has_attribute
#define __has_attribute …
#endif
#ifndef __has_feature
#define __has_feature …
#endif
#ifndef __has_extension
#define __has_extension …
#endif
#if __has_attribute(__sentinel__) || (defined(__GNUC__) && (__GNUC__ >= 4))
#define _X_SENTINEL(x) …
#else
#define _X_SENTINEL …
#endif
#if (__has_attribute(visibility) || (defined(__GNUC__) && (__GNUC__ >= 4))) \
&& !defined(__CYGWIN__) && !defined(__MINGW32__)
#define _X_EXPORT …
#define _X_HIDDEN …
#define _X_INTERNAL …
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
#define _X_EXPORT …
#define _X_HIDDEN …
#define _X_INTERNAL …
#else
#define _X_EXPORT
#define _X_HIDDEN
#define _X_INTERNAL
#endif
#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303)
#define _X_LIKELY(x) …
#define _X_UNLIKELY(x) …
#else
#define _X_LIKELY …
#define _X_UNLIKELY …
#endif
#if __has_attribute(__cold__) || \
(defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403))
#define _X_COLD …
#else
#define _X_COLD …
#endif
#if __has_attribute(deprecated) \
|| (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)) \
|| (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5130))
#define _X_DEPRECATED …
#else
#define _X_DEPRECATED
#endif
#if __has_extension(attribute_deprecated_with_message) || \
(defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))))
#define _X_DEPRECATED_MSG(_msg) …
#else
#define _X_DEPRECATED_MSG …
#endif
#if __has_attribute(noreturn) \
|| (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \
|| (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
#define _X_NORETURN …
#else
#define _X_NORETURN
#endif
#if __has_attribute(__format__) \
|| defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 203)
#define _X_ATTRIBUTE_PRINTF(x,y) …
#else
#define _X_ATTRIBUTE_PRINTF …
#endif
#if __has_attribute(nonnull) \
&& defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L)
#define _X_NONNULL …
#elif __has_attribute(nonnull) \
|| defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303)
#define _X_NONNULL(args...) …
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L)
#define _X_NONNULL …
#endif
#if __has_attribute(__unused__) \
|| defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)
#define _X_UNUSED …
#else
#define _X_UNUSED …
#endif
#if defined(inline) || \
(defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L)) || \
(defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550))
#define _X_INLINE …
#elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define _X_INLINE …
#else
#define _X_INLINE
#endif
#ifndef _X_RESTRICT_KYWD
# if defined(restrict) || \
(defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L) \
&& !defined(__cplusplus))
#define _X_RESTRICT_KYWD …
# elif defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define _X_RESTRICT_KYWD …
# else
#define _X_RESTRICT_KYWD
# endif
#endif
#if __has_attribute(no_sanitize_thread)
#define _X_NOTSAN …
#else
#define _X_NOTSAN
#endif
#if __has_attribute(nonstring)
#define _X_NONSTRING …
#else
#define _X_NONSTRING
#endif
#endif