On 6/7/21 3:07 PM, Thomas Huth wrote: > On 04/06/2021 17.51, Alex Bennée wrote: >> From: Philippe Mathieu-Daudé <phi...@redhat.com> >> >> Introduce the 'query-accels' QMP command which returns a list >> of built-in accelerator names. >> >> - Accelerator is a QAPI enum of all existing accelerators, >> >> - AcceleratorInfo is a QAPI structure providing accelerator >> specific information. Currently the common structure base >> provides the name of the accelerator, while the specific >> part is empty, but each accelerator can expand it. >> >> - 'query-accels' QMP command returns a list of @AcceleratorInfo >> >> For example on a KVM-only build we get: >> >> { "execute": "query-accels" } >> { >> "return": [ >> { >> "name": "qtest" >> }, >> { >> "name": "kvm" >> } >> ] >> } >> >> Note that we can't make the enum values or union branches conditional >> because of target-specific poisoning of accelerator definitions. >> >> Reviewed-by: Eric Blake <ebl...@redhat.com> >> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> >> Tested-by: Alex Bennée <alex.ben...@linaro.org> >> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> >> Signed-off-by: Alex Bennée <alex.ben...@linaro.org> >> Message-Id: <20210505125806.1263441-3-phi...@redhat.com> >> --- > [...] >> +static const bool accel_builtin_list[ACCELERATOR__MAX] = { >> + [ACCELERATOR_QTEST] = true, >> +#ifdef CONFIG_TCG >> + [ACCELERATOR_TCG] = true, >> +#endif >> +#ifdef CONFIG_KVM >> + [ACCELERATOR_KVM] = true, >> +#endif >> +#ifdef CONFIG_HAX >> + [ACCELERATOR_HAX] = true, >> +#endif >> +#ifdef CONFIG_HVF >> + [ACCELERATOR_HVF] = true, >> +#endif >> +#ifdef CONFIG_WHPX >> + [ACCELERATOR_WHPX] = true, >> +#endif >> +#ifdef CONFIG_XEN_BACKEND >> + [ACCELERATOR_XEN] = true, >> +#endif > > Nit: Use alphabetical order here, too, just like you did in the enum?
This has been drastically simplified by Markus using target-specific machine code in v8.