assert(type);
assert(token);
+ /* Returns -EUNATCH if the selected token is not set */
+
if (*token)
return 0; /* Already set. */
return r;
}
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ return log_error_errno(SYNTHETIC_ERRNO(EUNATCH),
"No machine ID set, and /etc/os-release carries no ID=/IMAGE_ID= fields.");
case BOOT_ENTRY_TOKEN_MACHINE_ID:
if (r != 0)
return r;
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No machine ID set.");
+ return log_error_errno(SYNTHETIC_ERRNO(EUNATCH), "No machine ID set.");
case BOOT_ENTRY_TOKEN_OS_IMAGE_ID:
r = entry_token_from_os_release(rfd, type, token);
if (r != 0)
return r;
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ return log_error_errno(SYNTHETIC_ERRNO(EUNATCH),
"IMAGE_ID= field not set in /etc/os-release.");
case BOOT_ENTRY_TOKEN_OS_ID:
if (r != 0)
return r;
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ return log_error_errno(SYNTHETIC_ERRNO(EUNATCH),
"ID= field not set in /etc/os-release.");
case BOOT_ENTRY_TOKEN_LITERAL:
/* In this case, the token should be already set by the user input. */
- return -EINVAL;
+ return log_error_errno(SYNTHETIC_ERRNO(EUNATCH), "Literal token indicated but not specified.");
default:
assert_not_reached();
static SD_VARLINK_DEFINE_ERROR(
NoESPFound);
+static SD_VARLINK_DEFINE_ERROR(
+ BootEntryTokenUnavailable);
+
SD_VARLINK_DEFINE_INTERFACE(
io_systemd_BootControl,
"io.systemd.BootControl",
SD_VARLINK_SYMBOL_COMMENT("No boot entry defined."),
&vl_error_NoSuchBootEntry,
SD_VARLINK_SYMBOL_COMMENT("No EFI System Partition (ESP) found."),
- &vl_error_NoESPFound);
+ &vl_error_NoESPFound,
+ SD_VARLINK_SYMBOL_COMMENT("The select boot entry token could not be determined."),
+ &vl_error_BootEntryTokenUnavailable);