On Wed, Oct 14, 2026 at 6:45 PM Philippe Mathieu-Daudé
<[email protected]> wrote:
>
> On 14/10/26 12:30, Daniel P. Berrangé wrote:
> > On Wed, Oct 14, 2026 at 12:24:57PM +0200, Philippe Mathieu-Daudé wrote:
> >> On 14/10/26 11:31, Yonggang Luo wrote:
> >>> This usermode targets:
> >>> aarch64_be
> >>> armeb
> >>> microblazeel
> >>> mipsn32
> >>> mipsn32el
> >>> ppc64le
> >>> sparc32plus
> >>> are not in machine.json
> >>>
> >>> This is a prepare for directly using TARGET_ARCH_VARIANT latter.
> >>>
> >>> Also get target-info.c to be compatible with future TARGET_ARCH_VARIANT 
> >>> only usage.
> >>> So that we can define TARGET_ARCH_VARIANT to target_name directly
> >>>
> >>> Signed-off-by: Yonggang Luo <[email protected]>
> >>> ---
> >>>    include/qemu/base-arch-defs.h | 13 +++++++++++++
> >>>    qapi/machine.json             | 25 +++++++++++++------------
> >>>    target-info.c                 | 26 +++++++++-----------------
> >>>    3 files changed, 35 insertions(+), 29 deletions(-)
> >>
> >>
> >>> diff --git a/qapi/machine.json b/qapi/machine.json
> >>> index 07fac4f0764..a3d6e08a847 100644
> >>> --- a/qapi/machine.json
> >>> +++ b/qapi/machine.json
> >>> @@ -15,11 +15,10 @@
> >>>    ##
> >>>    # @EmuTarget:
> >>> -#     The comprehensive enumeration of QEMU system emulation
> >>> -#     ("softmmu") targets.  Run "./configure --help" in the project
> >>> -#     root directory, and look for the \*-softmmu targets near the
> >>> -#     "--target-list" option.  The individual target constants are not
> >>> -#     documented here, for the time being.
> >>> +#     The comprehensive enumeration of QEMU system and user-mode
> >>> +#     emulation targets.  Run "./configure --help" in the project root
> >>> +#     directory, and look for the targets near the "--target-list"
> >>> +#     option.  Individual target constants are not documented here.
> >>>    #
> >>>    # @rx: since 5.0
> >>>    #
> >>> @@ -30,17 +29,19 @@
> >>>    # @hexagon: since 11.0
> >>>    #
> >>>    # .. note:: The resulting QMP strings can be appended to the
> >>> -#    "qemu-system-" prefix to produce the corresponding QEMU
> >>> -#    executable name.  This is true even for "qemu-system-x86_64".
> >>> +#    "qemu-system-" prefix for system emulation, or the "qemu-" prefix
> >>> +#    for user-mode emulation, to produce the corresponding executable
> >>> +#    name, where that target supports the respective emulation mode.
> >>>    #
> >>>    # Since: 3.0
> >>>    ##
> >>>    { 'enum' : 'EmuTarget',
> >>> -  'data' : [ 'aarch64', 'alpha', 'arm', 'avr', 'hexagon', 'hppa', 'i386',
> >>> -             'loongarch64', 'm68k', 'microblaze', 'mips', 'mips64',
> >>> -             'mips64el', 'mipsel', 'or1k', 'ppc',
> >>> -             'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4',
> >>> -             'sh4eb', 'sparc', 'sparc64', 'tricore',
> >>> +  'data' : [ 'aarch64', 'aarch64_be', 'alpha', 'arm', 'armeb', 'avr',
> >>> +             'hexagon', 'hppa', 'i386', 'loongarch64', 'm68k', 
> >>> 'microblaze',
> >>> +             'microblazeel', 'mips', 'mips64', 'mips64el', 'mipsel',
> >>> +             'mipsn32', 'mipsn32el', 'or1k', 'ppc', 'ppc64', 'ppc64le',
> >>> +             'riscv32', 'riscv64', 'rx', 's390x', 'sh4', 'sh4eb', 
> >>> 'sparc',
> >>> +             'sparc32plus', 'sparc64', 'tricore',
> >>>                 'x86_64', 'xtensa', 'xtensaeb' ] }
> >>
> >> 'machine.json' is for system binaries.
> >>
> >> If we want to expose these QAPI types to the user binaries
> >> (I'm not sure we want...) then this declaration block should
> >> be moved in another {qapi}.json file. QAPI types are versioned,
> >> so we'd need some "  @aarch64_be   # Since v13.0" comments.
> >>
> >> Anyway I doubt we want to alter EmuTarget, I'd rather let it
> >> die as a legacy field, and expose {arch, wordsize, endianness}
> >> to management layer if this is important to consume.
> >
> > Libvirt uses query-target so we don't want that data to go away.
> > If we want to expose other data alongside the target name that's
> > fine.
>
> I'm not suggesting to change 'query-target' format; the opposite...
> If we are going to add 'query-targets' (the plural form) then we
> should report something more useful like {arch, wordsize, endianness}
> but not that EmuTarget type which I consider legacy.

I think it should be moved to qapi.json. As I needed it, do you have a better
way to have an enum for mapping target-name to that enum?


-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo

Reply via email to