diff --git a/man/systemd-detect-virt.xml b/man/systemd-detect-virt.xml index cd7d512581..29d234ad93 100644 --- a/man/systemd-detect-virt.xml +++ b/man/systemd-detect-virt.xml @@ -281,6 +281,12 @@ Output all currently known and detectable container and VM environments. + + + + Output all currently known and detectable confidential virtualization technologies. + + diff --git a/shell-completion/bash/systemd-detect-virt b/shell-completion/bash/systemd-detect-virt index e67570e674..9ade2af220 100644 --- a/shell-completion/bash/systemd-detect-virt +++ b/shell-completion/bash/systemd-detect-virt @@ -29,7 +29,7 @@ _systemd_detect_virt() { local -A OPTS=( [STANDALONE]='-h --help --version -c --container -v --vm -q --quiet --cvm - --private-users' + --private-users --list --list-cvm' ) _init_completion || return diff --git a/src/detect-virt/detect-virt.c b/src/detect-virt/detect-virt.c index 61b7005e7f..2a65a3e6b8 100644 --- a/src/detect-virt/detect-virt.c +++ b/src/detect-virt/detect-virt.c @@ -42,6 +42,8 @@ static int help(void) { " --cvm Only detect whether we are run in a confidential VM\n" " -q --quiet Don't output anything, just set return value\n" " --list List all known and detectable types of virtualization\n" + " --list-cvm List all known and detectable types of confidential \n" + " virtualization\n" "\nSee the %s for details.\n", program_invocation_short_name, link); @@ -56,6 +58,7 @@ static int parse_argv(int argc, char *argv[]) { ARG_PRIVATE_USERS, ARG_LIST, ARG_CVM, + ARG_LIST_CVM, }; static const struct option options[] = { @@ -68,6 +71,7 @@ static int parse_argv(int argc, char *argv[]) { { "quiet", no_argument, NULL, 'q' }, { "cvm", no_argument, NULL, ARG_CVM }, { "list", no_argument, NULL, ARG_LIST }, + { "list-cvm", no_argument, NULL, ARG_LIST_CVM }, {} }; @@ -114,6 +118,10 @@ static int parse_argv(int argc, char *argv[]) { arg_mode = ONLY_CVM; return 1; + case ARG_LIST_CVM: + DUMP_STRING_TABLE(confidential_virtualization, ConfidentialVirtualization, _CONFIDENTIAL_VIRTUALIZATION_MAX); + return 0; + case '?': return -EINVAL;