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

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

#if defined(IRDAPROTO_UNITDATA) || (defined(HAVE_DECL_IRDAPROTO_UNITDATA) && HAVE_DECL_IRDAPROTO_UNITDATA)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IRDAPROTO_UNITDATA) == (0), "IRDAPROTO_UNITDATA != 0");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IRDAPROTO_UNITDATA 0
#endif
#if defined(IRDAPROTO_ULTRA) || (defined(HAVE_DECL_IRDAPROTO_ULTRA) && HAVE_DECL_IRDAPROTO_ULTRA)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((IRDAPROTO_ULTRA) == (1), "IRDAPROTO_ULTRA != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define IRDAPROTO_ULTRA 1
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat irda_protocols in mpers mode

# else

static
const struct xlat irda_protocols[] = {
 [IRDAPROTO_UNITDATA] = XLAT(IRDAPROTO_UNITDATA),
 [IRDAPROTO_ULTRA] = XLAT(IRDAPROTO_ULTRA),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
