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

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

#if defined(TCPDIAG_GETSOCK) || (defined(HAVE_DECL_TCPDIAG_GETSOCK) && HAVE_DECL_TCPDIAG_GETSOCK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((TCPDIAG_GETSOCK) == (18), "TCPDIAG_GETSOCK != 18");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define TCPDIAG_GETSOCK 18
#endif
#if defined(DCCPDIAG_GETSOCK) || (defined(HAVE_DECL_DCCPDIAG_GETSOCK) && HAVE_DECL_DCCPDIAG_GETSOCK)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((DCCPDIAG_GETSOCK) == (19), "DCCPDIAG_GETSOCK != 19");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define DCCPDIAG_GETSOCK 19
#endif
#if defined(SOCK_DIAG_BY_FAMILY) || (defined(HAVE_DECL_SOCK_DIAG_BY_FAMILY) && HAVE_DECL_SOCK_DIAG_BY_FAMILY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SOCK_DIAG_BY_FAMILY) == (20), "SOCK_DIAG_BY_FAMILY != 20");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SOCK_DIAG_BY_FAMILY 20
#endif
#if defined(SOCK_DESTROY) || (defined(HAVE_DECL_SOCK_DESTROY) && HAVE_DECL_SOCK_DESTROY)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((SOCK_DESTROY) == (21), "SOCK_DESTROY != 21");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define SOCK_DESTROY 21
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat nl_sock_diag_types in mpers mode

# else

static
const struct xlat nl_sock_diag_types[] = {
 XLAT(TCPDIAG_GETSOCK),
 XLAT(DCCPDIAG_GETSOCK),
 XLAT(SOCK_DIAG_BY_FAMILY),
 XLAT(SOCK_DESTROY),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
