diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c index bac00c5b3c..7788d65516 100644 --- a/src/shared/bootspec.c +++ b/src/shared/bootspec.c @@ -32,37 +32,37 @@ #include "strv.h" #include "uki.h" +static const char* const boot_entry_type_description_table[_BOOT_ENTRY_TYPE_MAX] = { + [BOOT_ENTRY_TYPE1] = "Boot Loader Specification Type #1 (.conf)", + [BOOT_ENTRY_TYPE2] = "Boot Loader Specification Type #2 (UKI, .efi)", + [BOOT_ENTRY_LOADER] = "Reported by Boot Loader", + [BOOT_ENTRY_AUTO] = "Automatic", +}; + +DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type_description, BootEntryType); + static const char* const boot_entry_type_table[_BOOT_ENTRY_TYPE_MAX] = { - [BOOT_ENTRY_CONF] = "Boot Loader Specification Type #1 (.conf)", - [BOOT_ENTRY_UNIFIED] = "Boot Loader Specification Type #2 (.efi)", - [BOOT_ENTRY_LOADER] = "Reported by Boot Loader", - [BOOT_ENTRY_LOADER_AUTO] = "Automatic", + [BOOT_ENTRY_TYPE1] = "type1", + [BOOT_ENTRY_TYPE2] = "type2", + [BOOT_ENTRY_LOADER] = "loader", + [BOOT_ENTRY_AUTO] = "auto", }; DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type, BootEntryType); -static const char* const boot_entry_type_json_table[_BOOT_ENTRY_TYPE_MAX] = { - [BOOT_ENTRY_CONF] = "type1", - [BOOT_ENTRY_UNIFIED] = "type2", - [BOOT_ENTRY_LOADER] = "loader", - [BOOT_ENTRY_LOADER_AUTO] = "auto", -}; - -DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_type_json, BootEntryType); - -static const char* const boot_entry_source_table[_BOOT_ENTRY_SOURCE_MAX] = { +static const char* const boot_entry_source_description_table[_BOOT_ENTRY_SOURCE_MAX] = { [BOOT_ENTRY_ESP] = "EFI System Partition", [BOOT_ENTRY_XBOOTLDR] = "Extended Boot Loader Partition", }; -DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source, BootEntrySource); +DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source_description, BootEntrySource); -static const char* const boot_entry_source_json_table[_BOOT_ENTRY_SOURCE_MAX] = { +static const char* const boot_entry_source_table[_BOOT_ENTRY_SOURCE_MAX] = { [BOOT_ENTRY_ESP] = "esp", [BOOT_ENTRY_XBOOTLDR] = "xbootldr", }; -DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source_json, BootEntrySource); +DEFINE_STRING_TABLE_LOOKUP_TO_STRING(boot_entry_source, BootEntrySource); static void boot_entry_addons_done(BootEntryAddons *addons) { assert(addons); @@ -319,7 +319,7 @@ static int boot_entry_load_type1( const char *fname, BootEntry *ret) { - _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_CONF, source); + _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_TYPE1, source); char *c; int r; @@ -759,7 +759,7 @@ static int boot_entry_load_unified( if (r < 0) return log_error_errno(r, "Failed to extract file name from '%s': %m", path); - _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_UNIFIED, source); + _cleanup_(boot_entry_free) BootEntry tmp = BOOT_ENTRY_INIT(BOOT_ENTRY_TYPE2, source); r = boot_filename_extract_tries(fname, &tmp.id, &tmp.tries_left, &tmp.tries_done); if (r < 0) @@ -1620,7 +1620,7 @@ int boot_config_augment_from_loader( return log_oom(); config->entries[config->n_entries++] = (BootEntry) { - .type = startswith(*i, "auto-") ? BOOT_ENTRY_LOADER_AUTO : BOOT_ENTRY_LOADER, + .type = startswith(*i, "auto-") ? BOOT_ENTRY_AUTO : BOOT_ENTRY_LOADER, .id = TAKE_PTR(c), .title = TAKE_PTR(t), .path = TAKE_PTR(p), @@ -1823,7 +1823,7 @@ int show_boot_entry( assert(e); printf(" type: %s\n", - boot_entry_type_to_string(e->type)); + boot_entry_type_description_to_string(e->type)); printf(" title: %s%s%s", ansi_highlight(), boot_entry_title(e), ansi_normal()); @@ -1840,7 +1840,7 @@ int show_boot_entry( if (e->type == BOOT_ENTRY_LOADER) printf(" %s(reported/absent)%s", ansi_highlight_red(), ansi_normal()); - else if (!e->reported_by_loader && e->type != BOOT_ENTRY_LOADER_AUTO) + else if (!e->reported_by_loader && e->type != BOOT_ENTRY_AUTO) printf(" %s(not reported/new)%s", ansi_highlight_green(), ansi_normal()); } @@ -1867,12 +1867,12 @@ int show_boot_entry( /* Let's urlify the link to make it easy to view in an editor, but only if it is a text * file. Unified images are binary ELFs, and EFI variables are not pure text either. */ - if (e->type == BOOT_ENTRY_CONF) + if (e->type == BOOT_ENTRY_TYPE1) (void) terminal_urlify_path(e->path, text, &link); printf(" source: %s (on the %s)\n", link ?: text ?: e->path, - boot_entry_source_to_string(e->source)); + boot_entry_source_description_to_string(e->source)); } if (e->tries_left != UINT_MAX) { printf(" tries: %u left", e->tries_left); @@ -1942,8 +1942,8 @@ int boot_entry_to_json(const BootConfig *c, size_t i, sd_json_variant **ret) { r = sd_json_variant_merge_objectbo( &v, - SD_JSON_BUILD_PAIR("type", SD_JSON_BUILD_STRING(boot_entry_type_json_to_string(e->type))), - SD_JSON_BUILD_PAIR("source", SD_JSON_BUILD_STRING(boot_entry_source_json_to_string(e->source))), + SD_JSON_BUILD_PAIR("type", SD_JSON_BUILD_STRING(boot_entry_type_to_string(e->type))), + SD_JSON_BUILD_PAIR("source", SD_JSON_BUILD_STRING(boot_entry_source_to_string(e->source))), SD_JSON_BUILD_PAIR_CONDITION(!!e->id, "id", SD_JSON_BUILD_STRING(e->id)), SD_JSON_BUILD_PAIR_CONDITION(!!e->path, "path", SD_JSON_BUILD_STRING(e->path)), SD_JSON_BUILD_PAIR_CONDITION(!!e->root, "root", SD_JSON_BUILD_STRING(e->root)), diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h index e0c561808c..dd192b4722 100644 --- a/src/shared/bootspec.h +++ b/src/shared/bootspec.h @@ -5,10 +5,10 @@ #include "forward.h" typedef enum BootEntryType { - BOOT_ENTRY_CONF, /* Boot Loader Specification Type #1 entries: *.conf files */ - BOOT_ENTRY_UNIFIED, /* Boot Loader Specification Type #2 entries: *.efi files */ - BOOT_ENTRY_LOADER, /* Additional entries augmented from LoaderEntries EFI variable (regular entries) */ - BOOT_ENTRY_LOADER_AUTO, /* Additional entries augmented from LoaderEntries EFI variable (special "automatic" entries) */ + BOOT_ENTRY_TYPE1, /* Boot Loader Specification Type #1 entries: *.conf files */ + BOOT_ENTRY_TYPE2, /* Boot Loader Specification Type #2 entries: *.efi files (UKIs) */ + BOOT_ENTRY_LOADER, /* Additional entries augmented from LoaderEntries EFI variable (regular entries) */ + BOOT_ENTRY_AUTO, /* Additional entries augmented from LoaderEntries EFI variable (special "automatic" entries) */ _BOOT_ENTRY_TYPE_MAX, _BOOT_ENTRY_TYPE_INVALID = -EINVAL, } BootEntryType; @@ -91,11 +91,11 @@ typedef struct BootConfig { .selected_entry = -1, \ } +const char* boot_entry_type_description_to_string(BootEntryType) _const_; const char* boot_entry_type_to_string(BootEntryType) _const_; -const char* boot_entry_type_json_to_string(BootEntryType) _const_; +const char* boot_entry_source_description_to_string(BootEntrySource) _const_; const char* boot_entry_source_to_string(BootEntrySource) _const_; -const char* boot_entry_source_json_to_string(BootEntrySource) _const_; BootEntry* boot_config_find_entry(BootConfig *config, const char *id); diff --git a/src/vmspawn/vmspawn.c b/src/vmspawn/vmspawn.c index 49833ec49f..0a3ac89255 100644 --- a/src/vmspawn/vmspawn.c +++ b/src/vmspawn/vmspawn.c @@ -1350,7 +1350,7 @@ static int discover_boot_entry(const char *root, char **ret_linux, char ***ret_i const BootEntry *boot_entry = boot_config_default_entry(&config); - if (boot_entry && !IN_SET(boot_entry->type, BOOT_ENTRY_UNIFIED, BOOT_ENTRY_CONF)) + if (boot_entry && !IN_SET(boot_entry->type, BOOT_ENTRY_TYPE1, BOOT_ENTRY_TYPE2)) boot_entry = NULL; /* If we cannot determine a default entry search for UKIs (Type #2 EFI Unified Kernel Images) @@ -1358,14 +1358,14 @@ static int discover_boot_entry(const char *root, char **ret_linux, char ***ret_i * https://uapi-group.org/specifications/specs/boot_loader_specification */ if (!boot_entry) FOREACH_ARRAY(entry, config.entries, config.n_entries) - if (entry->type == BOOT_ENTRY_UNIFIED) { + if (entry->type == BOOT_ENTRY_TYPE2) { /* UKI */ boot_entry = entry; break; } if (!boot_entry) FOREACH_ARRAY(entry, config.entries, config.n_entries) - if (entry->type == BOOT_ENTRY_CONF) { + if (entry->type == BOOT_ENTRY_TYPE1) { /* .conf */ boot_entry = entry; break; } @@ -1373,15 +1373,15 @@ static int discover_boot_entry(const char *root, char **ret_linux, char ***ret_i if (!boot_entry) return log_error_errno(SYNTHETIC_ERRNO(ENOENT), "Failed to discover any boot entries."); - log_debug("Discovered boot entry %s (%s)", boot_entry->id, boot_entry_type_to_string(boot_entry->type)); + log_debug("Discovered boot entry %s (%s)", boot_entry->id, boot_entry_type_description_to_string(boot_entry->type)); _cleanup_free_ char *linux_kernel = NULL; _cleanup_strv_free_ char **initrds = NULL; - if (boot_entry->type == BOOT_ENTRY_UNIFIED) { + if (boot_entry->type == BOOT_ENTRY_TYPE2) { /* UKI */ linux_kernel = path_join(boot_entry->root, boot_entry->kernel); if (!linux_kernel) return log_oom(); - } else if (boot_entry->type == BOOT_ENTRY_CONF) { + } else if (boot_entry->type == BOOT_ENTRY_TYPE1) { /* .conf */ linux_kernel = path_join(boot_entry->root, boot_entry->kernel); if (!linux_kernel) return log_oom();