This command is used by tooling like libvirt to retrieve a list of
supported CPUs. Each entry returns a CpuDefinitionInfo object that
contains more information about each CPU.
This initial support includes only the name of the CPU and its typename.
Here's what the command produces for the riscv64 target:
$ ./build/qemu-system-riscv64 -S -M virt -display none -qmp stdio
{"QMP": {"version": (...)}
{"execute": "qmp_capabilities", "arguments": {"enable": ["oob"]}}
{"return": {}}
{"execute": "query-cpu-definitions"}
{"return": [
{"name": "rv64", "typename": "rv64-riscv-cpu", "static": false, "deprecated":
false},
{"name": "sifive-e51", "typename": "sifive-e51-riscv-cpu", "static": false,
"deprecated": false},
{"name": "any", "typename": "any-riscv-cpu", "static": false, "deprecated":
false},
{"name": "x-rv128", "typename": "x-rv128-riscv-cpu", "static": false,
"deprecated": false},
{"name": "shakti-c", "typename": "shakti-c-riscv-cpu", "static": false,
"deprecated": false},
{"name": "thead-c906", "typename": "thead-c906-riscv-cpu", "static": false,
"deprecated": false},
{"name": "sifive-u54", "typename": "sifive-u54-riscv-cpu", "static": false,
"deprecated": false}]
}
Next patches will implement the 'static' attribute of CpuDefinitionInfo.
Signed-off-by: Daniel Henrique Barboza<dbarboza@ventanamicro.com>
---
qapi/machine-target.json | 6 ++--
target/riscv/meson.build | 3 +-
target/riscv/riscv-qmp-cmds.c | 53 +++++++++++++++++++++++++++++++++++
3 files changed, 59 insertions(+), 3 deletions(-)
create mode 100644 target/riscv/riscv-qmp-cmds.c