mirror of
https://github.com/systemd/systemd
synced 2024-10-15 04:24:19 +00:00
boot: rename entry_count → n_entries
While we don't strictly follow the rule, most of our userspace names these fields that count entries in some array n_xyz, hence let's do so in the EFI boot code too, to make things less special.
This commit is contained in:
parent
92bb46c464
commit
3a59c55f67
|
@ -67,7 +67,7 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
ConfigEntry **entries;
|
||||
size_t entry_count;
|
||||
size_t n_entries;
|
||||
size_t idx_default;
|
||||
size_t idx_default_efivar;
|
||||
uint32_t timeout_sec; /* Actual timeout used (efi_main() override > efivar > config). */
|
||||
|
@ -363,13 +363,13 @@ static size_t entry_lookup_key(Config *config, size_t start, char16_t key) {
|
|||
/* select entry by number key */
|
||||
if (key >= '1' && key <= '9') {
|
||||
size_t i = key - '0';
|
||||
if (i > config->entry_count)
|
||||
i = config->entry_count;
|
||||
if (i > config->n_entries)
|
||||
i = config->n_entries;
|
||||
return i-1;
|
||||
}
|
||||
|
||||
/* find matching key in config entries */
|
||||
for (size_t i = start; i < config->entry_count; i++)
|
||||
for (size_t i = start; i < config->n_entries; i++)
|
||||
if (config->entries[i]->key == key)
|
||||
return i;
|
||||
|
||||
|
@ -548,7 +548,7 @@ static void print_status(Config *config, char16_t *loaded_image_path) {
|
|||
if (!ps_continue())
|
||||
return;
|
||||
|
||||
for (size_t i = 0; i < config->entry_count; i++) {
|
||||
for (size_t i = 0; i < config->n_entries; i++) {
|
||||
ConfigEntry *entry = config->entries[i];
|
||||
EFI_DEVICE_PATH *dp = NULL;
|
||||
_cleanup_free_ char16_t *dp_str = NULL;
|
||||
|
@ -558,7 +558,7 @@ static void print_status(Config *config, char16_t *loaded_image_path) {
|
|||
EFI_SUCCESS)
|
||||
(void) device_path_to_str(dp, &dp_str);
|
||||
|
||||
printf(" config entry: %zu/%zu\n", i + 1, config->entry_count);
|
||||
printf(" config entry: %zu/%zu\n", i + 1, config->n_entries);
|
||||
printf(" id: %ls\n", entry->id);
|
||||
if (entry->title)
|
||||
printf(" title: %ls\n", entry->title);
|
||||
|
@ -663,38 +663,38 @@ static bool menu_run(
|
|||
* sure that idx_highlight is centered, but not if we are close to the
|
||||
* beginning/end of the entry list. Otherwise we would have a half-empty
|
||||
* screen. */
|
||||
if (config->entry_count <= visible_max || idx_highlight <= visible_max / 2)
|
||||
if (config->n_entries <= visible_max || idx_highlight <= visible_max / 2)
|
||||
idx_first = 0;
|
||||
else if (idx_highlight >= config->entry_count - (visible_max / 2))
|
||||
idx_first = config->entry_count - visible_max;
|
||||
else if (idx_highlight >= config->n_entries - (visible_max / 2))
|
||||
idx_first = config->n_entries - visible_max;
|
||||
else
|
||||
idx_first = idx_highlight - (visible_max / 2);
|
||||
idx_last = idx_first + visible_max - 1;
|
||||
|
||||
/* length of the longest entry */
|
||||
line_width = 0;
|
||||
for (size_t i = 0; i < config->entry_count; i++)
|
||||
for (size_t i = 0; i < config->n_entries; i++)
|
||||
line_width = MAX(line_width, strlen16(config->entries[i]->title_show));
|
||||
line_width = MIN(line_width + 2 * entry_padding, x_max);
|
||||
|
||||
/* offsets to center the entries on the screen */
|
||||
x_start = (x_max - (line_width)) / 2;
|
||||
if (config->entry_count < visible_max)
|
||||
y_start = ((visible_max - config->entry_count) / 2) + 1;
|
||||
if (config->n_entries < visible_max)
|
||||
y_start = ((visible_max - config->n_entries) / 2) + 1;
|
||||
else
|
||||
y_start = 0;
|
||||
|
||||
/* Put status line after the entry list, but give it some breathing room. */
|
||||
y_status = MIN(y_start + MIN(visible_max, config->entry_count) + 1, y_max - 1);
|
||||
y_status = MIN(y_start + MIN(visible_max, config->n_entries) + 1, y_max - 1);
|
||||
|
||||
lines = strv_free(lines);
|
||||
clearline = mfree(clearline);
|
||||
separator = mfree(separator);
|
||||
|
||||
/* menu entries title lines */
|
||||
lines = xnew(char16_t *, config->entry_count + 1);
|
||||
lines = xnew(char16_t *, config->n_entries + 1);
|
||||
|
||||
for (size_t i = 0; i < config->entry_count; i++) {
|
||||
for (size_t i = 0; i < config->n_entries; i++) {
|
||||
size_t j, padding;
|
||||
|
||||
lines[i] = xnew(char16_t, line_width + 1);
|
||||
|
@ -710,7 +710,7 @@ static bool menu_run(
|
|||
lines[i][j] = ' ';
|
||||
lines[i][line_width] = '\0';
|
||||
}
|
||||
lines[config->entry_count] = NULL;
|
||||
lines[config->n_entries] = NULL;
|
||||
|
||||
clearline = xnew(char16_t, x_max + 1);
|
||||
separator = xnew(char16_t, x_max + 1);
|
||||
|
@ -732,7 +732,7 @@ static bool menu_run(
|
|||
}
|
||||
|
||||
if (refresh) {
|
||||
for (size_t i = idx_first; i <= idx_last && i < config->entry_count; i++) {
|
||||
for (size_t i = idx_first; i <= idx_last && i < config->n_entries; i++) {
|
||||
print_at(x_start, y_start + i - idx_first,
|
||||
i == idx_highlight ? COLOR_HIGHLIGHT : COLOR_ENTRY,
|
||||
lines[i]);
|
||||
|
@ -834,7 +834,7 @@ static bool menu_run(
|
|||
case KEYPRESS(0, SCAN_DOWN, 0):
|
||||
case KEYPRESS(0, 0, 'j'):
|
||||
case KEYPRESS(0, 0, 'J'):
|
||||
if (idx_highlight < config->entry_count-1)
|
||||
if (idx_highlight < config->n_entries-1)
|
||||
idx_highlight++;
|
||||
break;
|
||||
|
||||
|
@ -848,9 +848,9 @@ static bool menu_run(
|
|||
|
||||
case KEYPRESS(0, SCAN_END, 0):
|
||||
case KEYPRESS(EFI_ALT_PRESSED, 0, '>'):
|
||||
if (idx_highlight < config->entry_count-1) {
|
||||
if (idx_highlight < config->n_entries-1) {
|
||||
refresh = true;
|
||||
idx_highlight = config->entry_count-1;
|
||||
idx_highlight = config->n_entries-1;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -863,8 +863,8 @@ static bool menu_run(
|
|||
|
||||
case KEYPRESS(0, SCAN_PAGE_DOWN, 0):
|
||||
idx_highlight += visible_max;
|
||||
if (idx_highlight > config->entry_count-1)
|
||||
idx_highlight = config->entry_count-1;
|
||||
if (idx_highlight > config->n_entries-1)
|
||||
idx_highlight = config->n_entries-1;
|
||||
break;
|
||||
|
||||
case KEYPRESS(0, 0, '\n'):
|
||||
|
@ -1067,15 +1067,15 @@ static void config_add_entry(Config *config, ConfigEntry *entry) {
|
|||
assert(entry);
|
||||
|
||||
/* This is just for paranoia. */
|
||||
assert(config->entry_count < IDX_MAX);
|
||||
assert(config->n_entries < IDX_MAX);
|
||||
|
||||
if ((config->entry_count & 15) == 0) {
|
||||
if ((config->n_entries & 15) == 0) {
|
||||
config->entries = xrealloc(
|
||||
config->entries,
|
||||
sizeof(void *) * config->entry_count,
|
||||
sizeof(void *) * (config->entry_count + 16));
|
||||
sizeof(void *) * config->n_entries,
|
||||
sizeof(void *) * (config->n_entries + 16));
|
||||
}
|
||||
config->entries[config->entry_count++] = entry;
|
||||
config->entries[config->n_entries++] = entry;
|
||||
}
|
||||
|
||||
static void config_entry_free(ConfigEntry *entry) {
|
||||
|
@ -1722,7 +1722,7 @@ static size_t config_entry_find(Config *config, const char16_t *pattern) {
|
|||
if (!pattern)
|
||||
return IDX_INVALID;
|
||||
|
||||
for (size_t i = 0; i < config->entry_count; i++)
|
||||
for (size_t i = 0; i < config->n_entries; i++)
|
||||
if (efi_fnmatch(pattern, config->entries[i]->id))
|
||||
return i;
|
||||
|
||||
|
@ -1758,7 +1758,7 @@ static void config_default_entry_select(Config *config) {
|
|||
}
|
||||
|
||||
/* select the first suitable entry */
|
||||
for (i = 0; i < config->entry_count; i++) {
|
||||
for (i = 0; i < config->n_entries; i++) {
|
||||
if (config->entries[i]->type == LOADER_AUTO || config->entries[i]->call)
|
||||
continue;
|
||||
config->idx_default = i;
|
||||
|
@ -1771,14 +1771,14 @@ static void config_default_entry_select(Config *config) {
|
|||
config->timeout_sec = 10;
|
||||
}
|
||||
|
||||
static bool entries_unique(ConfigEntry **entries, bool *unique, size_t entry_count) {
|
||||
static bool entries_unique(ConfigEntry **entries, bool *unique, size_t n_entries) {
|
||||
bool is_unique = true;
|
||||
|
||||
assert(entries);
|
||||
assert(unique);
|
||||
|
||||
for (size_t i = 0; i < entry_count; i++)
|
||||
for (size_t k = i + 1; k < entry_count; k++) {
|
||||
for (size_t i = 0; i < n_entries; i++)
|
||||
for (size_t k = i + 1; k < n_entries; k++) {
|
||||
if (!streq16(entries[i]->title_show, entries[k]->title_show))
|
||||
continue;
|
||||
|
||||
|
@ -1792,20 +1792,20 @@ static bool entries_unique(ConfigEntry **entries, bool *unique, size_t entry_cou
|
|||
static void config_title_generate(Config *config) {
|
||||
assert(config);
|
||||
|
||||
bool unique[config->entry_count];
|
||||
bool unique[config->n_entries];
|
||||
|
||||
/* set title */
|
||||
for (size_t i = 0; i < config->entry_count; i++) {
|
||||
for (size_t i = 0; i < config->n_entries; i++) {
|
||||
assert(!config->entries[i]->title_show);
|
||||
unique[i] = true;
|
||||
config->entries[i]->title_show = xstrdup16(config->entries[i]->title ?: config->entries[i]->id);
|
||||
}
|
||||
|
||||
if (entries_unique(config->entries, unique, config->entry_count))
|
||||
if (entries_unique(config->entries, unique, config->n_entries))
|
||||
return;
|
||||
|
||||
/* add version to non-unique titles */
|
||||
for (size_t i = 0; i < config->entry_count; i++) {
|
||||
for (size_t i = 0; i < config->n_entries; i++) {
|
||||
if (unique[i])
|
||||
continue;
|
||||
|
||||
|
@ -1818,11 +1818,11 @@ static void config_title_generate(Config *config) {
|
|||
config->entries[i]->title_show = xasprintf("%ls (%ls)", t, config->entries[i]->version);
|
||||
}
|
||||
|
||||
if (entries_unique(config->entries, unique, config->entry_count))
|
||||
if (entries_unique(config->entries, unique, config->n_entries))
|
||||
return;
|
||||
|
||||
/* add machine-id to non-unique titles */
|
||||
for (size_t i = 0; i < config->entry_count; i++) {
|
||||
for (size_t i = 0; i < config->n_entries; i++) {
|
||||
if (unique[i])
|
||||
continue;
|
||||
|
||||
|
@ -1835,11 +1835,11 @@ static void config_title_generate(Config *config) {
|
|||
config->entries[i]->title_show = xasprintf("%ls (%.8ls)", t, config->entries[i]->machine_id);
|
||||
}
|
||||
|
||||
if (entries_unique(config->entries, unique, config->entry_count))
|
||||
if (entries_unique(config->entries, unique, config->n_entries))
|
||||
return;
|
||||
|
||||
/* add file name to non-unique titles */
|
||||
for (size_t i = 0; i < config->entry_count; i++) {
|
||||
for (size_t i = 0; i < config->n_entries; i++) {
|
||||
if (unique[i])
|
||||
continue;
|
||||
|
||||
|
@ -2417,7 +2417,7 @@ static EFI_STATUS image_start(
|
|||
|
||||
static void config_free(Config *config) {
|
||||
assert(config);
|
||||
for (size_t i = 0; i < config->entry_count; i++)
|
||||
for (size_t i = 0; i < config->n_entries; i++)
|
||||
config_entry_free(config->entries[i]);
|
||||
free(config->entries);
|
||||
free(config->entry_default_config);
|
||||
|
@ -2433,12 +2433,12 @@ static void config_write_entries_to_variable(Config *config) {
|
|||
|
||||
assert(config);
|
||||
|
||||
for (size_t i = 0; i < config->entry_count; i++)
|
||||
for (size_t i = 0; i < config->n_entries; i++)
|
||||
sz += strsize16(config->entries[i]->id);
|
||||
|
||||
p = buffer = xmalloc(sz);
|
||||
|
||||
for (size_t i = 0; i < config->entry_count; i++)
|
||||
for (size_t i = 0; i < config->n_entries; i++)
|
||||
p = mempcpy(p, config->entries[i]->id, strsize16(config->entries[i]->id));
|
||||
|
||||
assert(p == buffer + sz);
|
||||
|
@ -2587,7 +2587,7 @@ static void config_load_all_entries(
|
|||
config_load_xbootldr(config, loaded_image->DeviceHandle);
|
||||
|
||||
/* sort entries after version number */
|
||||
sort_pointer_array((void **) config->entries, config->entry_count, (compare_pointer_func_t) config_entry_compare);
|
||||
sort_pointer_array((void **) config->entries, config->n_entries, (compare_pointer_func_t) config_entry_compare);
|
||||
|
||||
/* if we find some well-known loaders, add them to the end of the list */
|
||||
config_entry_add_osx(config);
|
||||
|
@ -2616,7 +2616,7 @@ static void config_load_all_entries(
|
|||
if (config->secure_boot_enroll != ENROLL_OFF)
|
||||
secure_boot_discover_keys(config, root_dir);
|
||||
|
||||
if (config->entry_count == 0)
|
||||
if (config->n_entries == 0)
|
||||
return;
|
||||
|
||||
config_write_entries_to_variable(config);
|
||||
|
@ -2665,7 +2665,7 @@ static EFI_STATUS run(EFI_HANDLE image) {
|
|||
|
||||
config_load_all_entries(&config, loaded_image, loaded_image_path, root_dir);
|
||||
|
||||
if (config.entry_count == 0)
|
||||
if (config.n_entries == 0)
|
||||
return log_error_status(
|
||||
EFI_NOT_FOUND,
|
||||
"No loader found. Configuration files in \\loader\\entries\\*.conf are needed.");
|
||||
|
|
Loading…
Reference in a new issue