On Mon, Sep 28, 2026 at 06:51:41PM +0800, Yonggang Luo wrote: > On Mon, Sep 28, 2026 at 6:39 PM Philippe Mathieu-Daudé < > [email protected]> wrote: > > > > On 28/9/26 12:13, Daniel P. Berrangé wrote: > > > On Sat, Sep 26, 2026 at 03:00:45PM +0800, Yonggang Luo wrote: > > >> query-targets lists each linked target, including none, with its > > >> arch, endianness, and the machines that target accepts. > > >> > > >> Signed-off-by: Yonggang Luo <[email protected]> > > >> --- > > >> hw/core/machine-qmp-cmds.c | 30 ++++++++++++++++++++++++++++++ > > >> qapi/machine.json | 35 +++++++++++++++++++++++++++++++++++ > > >> 2 files changed, 65 insertions(+) > > > > > > > > >> diff --git a/qapi/machine.json b/qapi/machine.json > > >> index 6aaa2af709a..d8cdea6203e 100644 > > >> --- a/qapi/machine.json > > >> +++ b/qapi/machine.json > > >> @@ -307,6 +307,41 @@ > > >> ## > > >> { 'command': 'query-target', 'returns': 'QemuTargetInfo' } > > >> > > >> +## > > >> +# @TargetMachines: > > >> +# > > >> +# One registered system target and the machines that can run on it. > > >> +# > > >> +# @arch: the target architecture > > >> +# > > >> +# @endianness: the target endianness > > >> +# > > >> +# @machines: machine type names, not aliases > > >> +# > > >> +# Since: 11.2 > > >> +## > > >> +{ 'struct': 'TargetMachines', > > >> + 'data': { 'arch': 'SysEmuTarget', > > >> + 'endianness': 'EndianMode', > > >> + 'machines': ['str'] } } > > > > > > We already have 'QemuTargetInfo' struct which is used > > > with 'query-target', that should also be used with the > > > new 'query-targets' command. > > > > > > We need to add the 'endianness' field to QemuTargetInfo. > > > > Why do we want to expose endianness, and what endianness to > > expose? Endianness is a runtime bit state of CPUs. Sometime > > this bit is hardwired but that is an implementation detail. > > For some targets it's, but for some targets it's not. for example > > mips-softmmu.mak > mipsel-softmmu.mak > mips64el-softmmu.mak > mips64-softmmu.mak > > > mips64el-softmmu.mak > mips64-softmmu.mak > only differ the endianless
"EndianMode" is a tri-state including 'unspecified' as a value, so we can cope with both scenarios - the targets where endianness is runtime switchable in the CPU can use 'unspecified' as the EndianMode. That behaviour should be documented in the QAPI docs for QemuTargetInfo With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
