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

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

#if defined(KEXEC_FILE_UNLOAD) || (defined(HAVE_DECL_KEXEC_FILE_UNLOAD) && HAVE_DECL_KEXEC_FILE_UNLOAD)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((KEXEC_FILE_UNLOAD) == (1), "KEXEC_FILE_UNLOAD != 1");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define KEXEC_FILE_UNLOAD 1
#endif
#if defined(KEXEC_FILE_ON_CRASH) || (defined(HAVE_DECL_KEXEC_FILE_ON_CRASH) && HAVE_DECL_KEXEC_FILE_ON_CRASH)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((KEXEC_FILE_ON_CRASH) == (2), "KEXEC_FILE_ON_CRASH != 2");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define KEXEC_FILE_ON_CRASH 2
#endif
#if defined(KEXEC_FILE_NO_INITRAMFS) || (defined(HAVE_DECL_KEXEC_FILE_NO_INITRAMFS) && HAVE_DECL_KEXEC_FILE_NO_INITRAMFS)
DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
static_assert((KEXEC_FILE_NO_INITRAMFS) == (4), "KEXEC_FILE_NO_INITRAMFS != 4");
DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
#else
# define KEXEC_FILE_NO_INITRAMFS 4
#endif

#ifndef XLAT_MACROS_ONLY

# ifdef IN_MPERS

#  error static const struct xlat kexec_file_load_flags in mpers mode

# else

static
const struct xlat kexec_file_load_flags[] = {
 XLAT(KEXEC_FILE_UNLOAD),
 XLAT(KEXEC_FILE_ON_CRASH),
 XLAT(KEXEC_FILE_NO_INITRAMFS),
 XLAT_END
};

# endif /* !IN_MPERS */

#endif /* !XLAT_MACROS_ONLY */
