/* Generated by ./xlat/gen.sh from ./xlat/sock_shutdown_flags.in; do not edit. */

#include "gcc_compat.h"
#include "static_assert.h"

#if defined(RCV_SHUTDOWN) || (defined(HAVE_DECL_RCV_SHUTDOWN) && HAVE_DECL_RCV_SHUTDOWN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((RCV_SHUTDOWN) == (1), "RCV_SHUTDOWN != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define RCV_SHUTDOWN 1
#endif
#if defined(SEND_SHUTDOWN) || (defined(HAVE_DECL_SEND_SHUTDOWN) && HAVE_DECL_SEND_SHUTDOWN)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SEND_SHUTDOWN) == (2), "SEND_SHUTDOWN != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SEND_SHUTDOWN 2
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat sock_shutdown_flags in mpers mode

# else

static
const struct xlat sock_shutdown_flags[] = {
 XLAT(RCV_SHUTDOWN),
 XLAT(SEND_SHUTDOWN),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
