'src/boot/bootctl-random-seed.h',
'src/boot/bootctl-reboot-to-firmware.c',
'src/boot/bootctl-reboot-to-firmware.h',
+ 'src/boot/bootctl-systemd-efi-options.c',
+ 'src/boot/bootctl-systemd-efi-options.h',
'src/boot/bootctl-util.c',
'src/boot/bootctl-util.h'],
include_directories : includes,
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "alloc-util.h"
+#include "bootctl-systemd-efi-options.h"
+#include "efi-loader.h"
+
+int verb_systemd_efi_options(int argc, char *argv[], void *userdata) {
+ int r;
+
+ if (argc == 1) {
+ _cleanup_free_ char *line = NULL, *new = NULL;
+
+ r = systemd_efi_options_variable(&line);
+ if (r == -ENODATA)
+ log_debug("No SystemdOptions EFI variable present in cache.");
+ else if (r < 0)
+ return log_error_errno(r, "Failed to read SystemdOptions EFI variable from cache: %m");
+ else
+ puts(line);
+
+ r = systemd_efi_options_efivarfs_if_newer(&new);
+ if (r == -ENODATA) {
+ if (line)
+ log_notice("Note: SystemdOptions EFI variable has been removed since boot.");
+ } else if (r < 0)
+ log_warning_errno(r, "Failed to check SystemdOptions EFI variable in efivarfs, ignoring: %m");
+ else if (new && !streq_ptr(line, new))
+ log_notice("Note: SystemdOptions EFI variable has been modified since boot. New value: %s",
+ new);
+ } else {
+ r = efi_set_variable_string(EFI_SYSTEMD_VARIABLE(SystemdOptions), argv[1]);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set SystemdOptions EFI variable: %m");
+ }
+
+ return 0;
+}
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#pragma once
+
+int verb_systemd_efi_options(int argc, char *argv[], void *userdata);
#include "bootctl.h"
#include "bootctl-random-seed.h"
#include "bootctl-reboot-to-firmware.h"
+#include "bootctl-systemd-efi-options.h"
#include "bootctl-util.h"
#include "bootspec.h"
#include "build.h"
return 0;
}
-static int verb_systemd_efi_options(int argc, char *argv[], void *userdata) {
- int r;
-
- if (argc == 1) {
- _cleanup_free_ char *line = NULL, *new = NULL;
-
- r = systemd_efi_options_variable(&line);
- if (r == -ENODATA)
- log_debug("No SystemdOptions EFI variable present in cache.");
- else if (r < 0)
- return log_error_errno(r, "Failed to read SystemdOptions EFI variable from cache: %m");
- else
- puts(line);
-
- r = systemd_efi_options_efivarfs_if_newer(&new);
- if (r == -ENODATA) {
- if (line)
- log_notice("Note: SystemdOptions EFI variable has been removed since boot.");
- } else if (r < 0)
- log_warning_errno(r, "Failed to check SystemdOptions EFI variable in efivarfs, ignoring: %m");
- else if (new && !streq_ptr(line, new))
- log_notice("Note: SystemdOptions EFI variable has been modified since boot. New value: %s",
- new);
- } else {
- r = efi_set_variable_string(EFI_SYSTEMD_VARIABLE(SystemdOptions), argv[1]);
- if (r < 0)
- return log_error_errno(r, "Failed to set SystemdOptions EFI variable: %m");
- }
-
- return 0;
-}
-
static int bootctl_main(int argc, char *argv[]) {
static const Verb verbs[] = {
{ "help", VERB_ANY, VERB_ANY, 0, help },