Markus Armbruster <arm...@redhat.com> writes: > Peter Xu <pet...@redhat.com> writes: > >> Define new struct to describe whether we support specific GIC version. >> >> Signed-off-by: Peter Xu <pet...@redhat.com> >> --- >> qapi-schema.json | 22 ++++++++++++++++++++++ >> 1 file changed, 22 insertions(+) >> >> diff --git a/qapi-schema.json b/qapi-schema.json >> index f253a37..da9671a 100644 >> --- a/qapi-schema.json >> +++ b/qapi-schema.json >> @@ -4134,3 +4134,25 @@ >> ## >> { 'enum': 'ReplayMode', >> 'data': [ 'none', 'record', 'play' ] } >> + >> +## >> +# @GICCapability: >> +# >> +# This struct describes capability for a specific GIC version. These >> +# bits are not only decided by QEMU/KVM software version, but also >> +# decided by the hardware that the program is running upon. >> +# >> +# @version: version of GIC to be described. >> +# >> +# @emulated: whether current QEMU/hardware supports emulated GIC >> +# device in user space. >> +# >> +# @kernel: whether current QEMU/hardware supports hardware >> +# accelerated GIC device in kernel. >> +# >> +# Since: 2.6 >> +## >> +{ 'struct': 'GICCapability', >> + 'data': { 'version': 'int', >> + 'emulated': 'bool', >> + 'kernel': 'bool' } } > > Are all four combinations of (emulated, kernel) possible?
Moreover, what do the combinations mean from a practical point of view? What would a management application do with the information?