static void elog_add_boot_reason(void *unused) { int rec = vboot_recovery_mode_enabled(); int dev = vboot_developer_mode_enabled(); if (!rec && !dev) return; if (rec) { u8 reason = vboot_check_recovery_request(); elog_add_event_byte(ELOG_TYPE_CROS_RECOVERY_MODE, reason); printk(BIOS_DEBUG, "%s: Logged recovery mode boot%s, " "reason: 0x%02x\n", __func__, dev ? " (Dev-switch on)" : "", reason); } if (dev) { int log_event = 1; #if IS_ENABLED(CONFIG_HAVE_ACPI_RESUME) /* Skip logging developer mode in ACPI resume path */ if (acpi_is_wakeup()) log_event = 0; #endif if (log_event) { elog_add_event(ELOG_TYPE_CROS_DEVELOPER_MODE); printk(BIOS_DEBUG, "%s: Logged dev mode boot\n", __func__); } } }
int vboot_recovery_mode_enabled(void) { if (!IS_ENABLED(CONFIG_VBOOT)) return 0; return !!vboot_check_recovery_request(); }