On 4/30/21 1:24 AM, Yang Zhong wrote: > This QMP query command can be used by some userspaces to retrieve > the SGX information when SGX is enabled on Intel platform. > > Signed-off-by: Yang Zhong <yang.zh...@intel.com> > --- > monitor/qmp-cmds.c | 6 ++++++ > qapi/misc.json | 42 ++++++++++++++++++++++++++++++++++++++ > tests/qtest/qmp-cmd-test.c | 1 + > 3 files changed, 49 insertions(+) >
> +++ b/qapi/misc.json > @@ -519,3 +519,45 @@ > 'data': { '*option': 'str' }, > 'returns': ['CommandLineOptionInfo'], > 'allow-preconfig': true } > + > +## > +# @SGXInfo: > +# > +# Information about intel Safe Guard eXtension (SGX) support > +# > +# @sgx: true if SGX is support is supported > +# > +# @sgx1: true if SGX1 is support > +# > +# @sgx2: true if SGX2 is support > +# > +# @flc: true if FLC is support again, for each of these too. > +# > +# @section-size: The EPC section size for guest > +# > +# Since: 5.1 6.1 (5.1 was last year). > +## > +{ 'struct': 'SGXInfo', > + 'data': { 'sgx': 'bool', > + 'sgx1': 'bool', > + 'sgx2': 'bool', > + 'flc': 'bool', > + 'section-size': 'uint64'}} > + > +## > +# @query-sgx: > +# > +# Returns information about SGX > +# > +# Returns: @SGXInfo > +# > +# Since: 5.1 6.1 > +# > +# Example: > +# > +# -> { "execute": "query-sgx" } > +# <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true, > +# "flc": true, "section-size" : 0 } } > +# > +## > +{ 'command': 'query-sgx', 'returns': 'SGXInfo' } > diff --git a/tests/qtest/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c > index c98b78d033..b75f3364f3 100644 > --- a/tests/qtest/qmp-cmd-test.c > +++ b/tests/qtest/qmp-cmd-test.c > @@ -100,6 +100,7 @@ static bool query_is_ignored(const char *cmd) > /* Success depends on Host or Hypervisor SEV support */ > "query-sev", > "query-sev-capabilities", > + "query-sgx", > NULL > }; > int i; > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org