mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-03 23:28:58 +00:00
Connect the ZFS boot environment menu to the UEFI loader
MFC after: 3 days Sponsored by: ScaleEngine Inc.
This commit is contained in:
parent
fbe958861e
commit
1b65ef2908
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=294073
|
@ -199,6 +199,7 @@ main(int argc, CHAR16 *argv[])
|
|||
efi_setcurrdev, env_nounset);
|
||||
env_setenv("loaddev", EV_VOLATILE, efi_fmtdev(&currdev), env_noset,
|
||||
env_nounset);
|
||||
init_zfs_bootenv(zfs_fmtdev(&currdev));
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
@ -507,6 +508,38 @@ command_lszfs(int argc, char *argv[])
|
|||
}
|
||||
return (CMD_OK);
|
||||
}
|
||||
|
||||
COMMAND_SET(reloadbe, "reloadbe", "refresh the list of ZFS Boot Environments",
|
||||
command_reloadbe);
|
||||
|
||||
static int
|
||||
command_reloadbe(int argc, char *argv[])
|
||||
{
|
||||
int err;
|
||||
char *root;
|
||||
|
||||
if (argc > 2) {
|
||||
command_errmsg = "wrong number of arguments";
|
||||
return (CMD_ERROR);
|
||||
}
|
||||
|
||||
if (argc == 2) {
|
||||
err = zfs_bootenv(argv[1]);
|
||||
} else {
|
||||
root = getenv("zfs_be_root");
|
||||
if (root == NULL) {
|
||||
return (CMD_OK);
|
||||
}
|
||||
err = zfs_bootenv(root);
|
||||
}
|
||||
|
||||
if (err != 0) {
|
||||
command_errmsg = strerror(err);
|
||||
return (CMD_ERROR);
|
||||
}
|
||||
|
||||
return (CMD_OK);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef LOADER_FDT_SUPPORT
|
||||
|
|
Loading…
Reference in a new issue