]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bootctl: add missing varlink IDL entries
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 4 Sep 2025 00:15:01 +0000 (09:15 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 7 Oct 2025 09:48:58 +0000 (11:48 +0200)
Follow-up for f2751d757f76f6e50e452431815370a3a45fdfc0.

(cherry picked from commit ce631ae3d9847606f7ca70ddba1cb2d8fc3d6441)

src/shared/varlink-io.systemd.BootControl.c

index 364fa8470e5725e9f968ca26b0823a2d44cc4df5..eeaef291e4468c25db919c67f20edbf163319422 100644 (file)
@@ -13,9 +13,27 @@ static SD_VARLINK_DEFINE_ENUM_TYPE(
                 SD_VARLINK_FIELD_COMMENT("Automatically generated entries"),
                 SD_VARLINK_DEFINE_ENUM_VALUE(auto));
 
+static SD_VARLINK_DEFINE_ENUM_TYPE(
+                BootEntrySource,
+                SD_VARLINK_FIELD_COMMENT("Boot entry found in EFI system partition (ESP)"),
+                SD_VARLINK_DEFINE_ENUM_VALUE(esp),
+                SD_VARLINK_FIELD_COMMENT("Boot entry found in XBOOTLDR partition"),
+                SD_VARLINK_DEFINE_ENUM_VALUE(xbootldr));
+
+static SD_VARLINK_DEFINE_STRUCT_TYPE(
+                BootEntryAddon,
+                SD_VARLINK_FIELD_COMMENT("The location of the global addon."),
+                SD_VARLINK_DEFINE_FIELD(globalAddon, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("The location of the local addon."),
+                SD_VARLINK_DEFINE_FIELD(localAddon, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("The command line options by the addon."),
+                SD_VARLINK_DEFINE_FIELD(options, SD_VARLINK_STRING, 0));
+
 static SD_VARLINK_DEFINE_STRUCT_TYPE(
                 BootEntry,
                 SD_VARLINK_DEFINE_FIELD_BY_TYPE(type, BootEntryType, 0),
+                SD_VARLINK_FIELD_COMMENT("The source of the entry"),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(source, BootEntrySource, 0),
                 SD_VARLINK_FIELD_COMMENT("The string identifier of the entry"),
                 SD_VARLINK_DEFINE_FIELD(id, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
                 SD_VARLINK_DEFINE_FIELD(path, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
@@ -41,7 +59,11 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
                 SD_VARLINK_FIELD_COMMENT("Indicates whether this entry is the default entry."),
                 SD_VARLINK_DEFINE_FIELD(isDefault, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Indicates whether this entry has been booted."),
-                SD_VARLINK_DEFINE_FIELD(isSelected, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE));
+                SD_VARLINK_DEFINE_FIELD(isSelected, SD_VARLINK_BOOL, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Addon images of the entry."),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(addons, BootEntryAddon, SD_VARLINK_NULLABLE|SD_VARLINK_ARRAY),
+                SD_VARLINK_FIELD_COMMENT("Command line options of the entry."),
+                SD_VARLINK_DEFINE_FIELD(cmdline, SD_VARLINK_STRING, SD_VARLINK_NULLABLE));
 
 static SD_VARLINK_DEFINE_METHOD_FULL(
                 ListBootEntries,
@@ -71,6 +93,10 @@ SD_VARLINK_DEFINE_INTERFACE(
                 SD_VARLINK_INTERFACE_COMMENT("Boot Loader control APIs"),
                 SD_VARLINK_SYMBOL_COMMENT("The type of a boot entry"),
                 &vl_type_BootEntryType,
+                SD_VARLINK_SYMBOL_COMMENT("The source of a boot entry"),
+                &vl_type_BootEntrySource,
+                SD_VARLINK_SYMBOL_COMMENT("A structure encapsulating an addon of a boot entry"),
+                &vl_type_BootEntryAddon,
                 SD_VARLINK_SYMBOL_COMMENT("A structure encapsulating a boot entry"),
                 &vl_type_BootEntry,
                 SD_VARLINK_SYMBOL_COMMENT("Enumerates boot entries. Method call must be called with 'more' flag set. Each response returns one entry. If no entries are defined returns the NoSuchBootEntry error."),