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

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

#if defined(IFLA_INET_UNSPEC) || (defined(HAVE_DECL_IFLA_INET_UNSPEC) && HAVE_DECL_IFLA_INET_UNSPEC)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IFLA_INET_UNSPEC) == (0), "IFLA_INET_UNSPEC != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IFLA_INET_UNSPEC 0
#endif
#if defined(IFLA_INET_CONF) || (defined(HAVE_DECL_IFLA_INET_CONF) && HAVE_DECL_IFLA_INET_CONF)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IFLA_INET_CONF) == (1), "IFLA_INET_CONF != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IFLA_INET_CONF 1
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat rtnl_ifla_af_spec_inet_attrs in mpers mode

# else

static
const struct xlat rtnl_ifla_af_spec_inet_attrs[] = {
 [IFLA_INET_UNSPEC] = XLAT(IFLA_INET_UNSPEC),
 [IFLA_INET_CONF] = XLAT(IFLA_INET_CONF),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
