From: Philippe Mathieu-Daudé <philmd@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 <eblake@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210505125806.1263441-3-philmd@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