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

static const struct xlat bootflags3[] = {
#if defined(LINUX_REBOOT_CMD_RESTART) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_RESTART) && HAVE_DECL_LINUX_REBOOT_CMD_RESTART)
	XLAT(LINUX_REBOOT_CMD_RESTART),
#endif
#if defined(LINUX_REBOOT_CMD_HALT) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_HALT) && HAVE_DECL_LINUX_REBOOT_CMD_HALT)
	XLAT(LINUX_REBOOT_CMD_HALT),
#endif
#if defined(LINUX_REBOOT_CMD_CAD_ON) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_CAD_ON) && HAVE_DECL_LINUX_REBOOT_CMD_CAD_ON)
	XLAT(LINUX_REBOOT_CMD_CAD_ON),
#endif
#if defined(LINUX_REBOOT_CMD_CAD_OFF) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_CAD_OFF) && HAVE_DECL_LINUX_REBOOT_CMD_CAD_OFF)
	XLAT(LINUX_REBOOT_CMD_CAD_OFF),
#endif
#if defined(LINUX_REBOOT_CMD_POWER_OFF) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_POWER_OFF) && HAVE_DECL_LINUX_REBOOT_CMD_POWER_OFF)
	XLAT(LINUX_REBOOT_CMD_POWER_OFF),
#endif
#if defined(LINUX_REBOOT_CMD_RESTART2) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_RESTART2) && HAVE_DECL_LINUX_REBOOT_CMD_RESTART2)
	XLAT(LINUX_REBOOT_CMD_RESTART2),
#endif
#if defined(LINUX_REBOOT_CMD_SW_SUSPEND) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_SW_SUSPEND) && HAVE_DECL_LINUX_REBOOT_CMD_SW_SUSPEND)
	XLAT(LINUX_REBOOT_CMD_SW_SUSPEND),
#endif
#if defined(LINUX_REBOOT_CMD_KEXEC) || (defined(HAVE_DECL_LINUX_REBOOT_CMD_KEXEC) && HAVE_DECL_LINUX_REBOOT_CMD_KEXEC)
	XLAT(LINUX_REBOOT_CMD_KEXEC),
#endif
	XLAT_END
};
