On 3/16/21 10:02 AM, Philippe Mathieu-Daudé wrote: > On 3/16/21 7:51 AM, Markus Armbruster wrote: >> Eric Blake <ebl...@redhat.com> writes: >> >>> On 3/11/21 5:11 PM, Philippe Mathieu-Daudé wrote: >> [...] >>>> diff --git a/accel/accel-qmp.c b/accel/accel-qmp.c >>>> new file mode 100644 >>>> index 00000000000..f16e49b8956 >>>> --- /dev/null >>>> +++ b/accel/accel-qmp.c >>>> @@ -0,0 +1,47 @@ >>>> +/* >>>> + * QEMU accelerators, QMP commands >>>> + * >>>> + * Copyright (c) 2021 Red Hat Inc. >>>> + * >>>> + * SPDX-License-Identifier: GPL-2.0-or-later >>>> + */ >>>> + >>>> +#include "qemu/osdep.h" >>>> +#include "qapi/qapi-commands-machine.h" >>>> + >>>> +static const Accelerator accel_list[] = { >>>> + ACCELERATOR_QTEST, >>>> +#ifdef CONFIG_TCG >>>> + ACCELERATOR_TCG, >>>> +#endif >>>> +#ifdef CONFIG_KVM >>>> + ACCELERATOR_KVM, >>>> +#endif >>> >>> ...would it be worth compiling the enum to only list enum values that >>> were actually compiled in? That would change it to: >>> >>> { 'enum': 'Accelerator', >>> 'data': [ 'qtest', >>> { 'name': 'tcg', 'if': 'defined(CONFIG_TCG)' }, >>> ... > > These accelerator definitions are supposed to be poisoned in generic > code... But I like the simplicity of your suggestion, so I'll give it > a try and see what happens with removing the poisoned definitions.
This is actually quite interesting :) Accelerator definitions are declared in config-target.h, but acceleration is host specific... We certainly don't want to make qapi target-specific.