From: Daniel P. Berrangé Date: Fri, 30 Jun 2023 18:07:29 +0000 (+0100) Subject: detect-virt: add --list-cvm option X-Git-Tag: v254-rc1~9^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f460fec91524b6171183e70f03e10ab025bd1f03;p=thirdparty%2Fsystemd.git detect-virt: add --list-cvm option The --list-cvm option reports the known types of confidential virtualization technology that can be detected. Related: https://github.com/systemd/systemd/issues/27604 Signed-off-by: Daniel P. Berrangé --- diff --git a/man/systemd-detect-virt.xml b/man/systemd-detect-virt.xml index cd7d512581a..29d234ad93f 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 e67570e6748..9ade2af220f 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 61b7005e7f5..2a65a3e6b8d 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;