History log of /openbmc/qemu/python/ (Results 151 – 175 of 342)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
58026b1122-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: Add dict conversion method to Greeting object

The iotests interface expects to return the greeting as a dict; AQMP
offers it as a rich object.

Signed-off-by: John Snow <jsnow@redhat.co

python/aqmp: Add dict conversion method to Greeting object

The iotests interface expects to return the greeting as a dict; AQMP
offers it as a rich object.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210923004938.3999963-6-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

6e2f6ec522-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add send_fd_scm

Add an implementation for send_fd_scm to the async QMP implementation.
Like socket_scm_helper mentions, a non-empty payload is required for
QEMU to process the ancillary

python/aqmp: add send_fd_scm

Add an implementation for send_fd_scm to the async QMP implementation.
Like socket_scm_helper mentions, a non-empty payload is required for
QEMU to process the ancillary data. A space is most useful because it
does not disturb the parsing of subsequent JSON objects.

A note on "voiding the warranty":

Python 3.11 removes support for calling sendmsg directly from a
transport's socket. There is no other interface for doing this, our use
case is, I suspect, "quite unique".

As far as I can tell, this is safe to do -- send_fd_scm is a synchronous
function and we can be guaranteed that the async coroutines will *not* be
running when it is invoked. In testing, it works correctly.

I investigated quite thoroughly the possibility of creating my own
asyncio Transport (The class that ultimately manages the raw socket
object) so that I could manage the socket myself, but this is so wildly
invasive and unportable I scrapped the idea. It would involve a lot of
copy-pasting of various python utilities and classes just to re-create
the same infrastructure, and for extremely little benefit. Nah.

Just boldly void the warranty instead, while I try to follow up on
https://bugs.python.org/issue43232

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210923004938.3999963-5-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

6bfebc7322-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: Return cleared events from EventListener.clear()

This serves two purposes:

(1) It is now possible to discern whether or not clear() removed any
event(s) from the queue with absolute ce

python/aqmp: Return cleared events from EventListener.clear()

This serves two purposes:

(1) It is now possible to discern whether or not clear() removed any
event(s) from the queue with absolute certainty, and

(2) It is now very easy to get a List of all pending events in one
chunk, which is useful for the sync bridge.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20210923004938.3999963-4-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

16cce72522-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add .empty() method to EventListener

Synchronous clients may want to know if they're about to block waiting
for an event or not. A method such as this is necessary to implement a
compat

python/aqmp: add .empty() method to EventListener

Synchronous clients may want to know if they're about to block waiting
for an event or not. A method such as this is necessary to implement a
compatible interface for the old QEMUMonitorProtocol using the new async
internals.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20210923004938.3999963-3-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

0257209a22-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add greeting property to QMPClient

Expose the greeting as a read-only property of QMPClient so it can be
retrieved at-will.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Han

python/aqmp: add greeting property to QMPClient

Expose the greeting as a read-only property of QMPClient so it can be
retrieved at-will.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20210923004938.3999963-2-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...


/openbmc/qemu/.github/workflows/lockdown.yml
/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/build.yml
/openbmc/qemu/.gitlab-ci.d/container-cross.yml
/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/.gitlab-ci.d/static_checks.yml
/openbmc/qemu/.travis.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/hvf/hvf-accel-ops.c
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/atomic_common.c.inc
/openbmc/qemu/accel/tcg/atomic_template.h
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/accel/tcg/user-exec.c
/openbmc/qemu/backends/hostmem-epc.c
/openbmc/qemu/backends/meson.build
/openbmc/qemu/block.c
/openbmc/qemu/block/aio_task.c
/openbmc/qemu/block/backup.c
/openbmc/qemu/block/blkdebug.c
/openbmc/qemu/block/blklogwrites.c
/openbmc/qemu/block/blkreplay.c
/openbmc/qemu/block/blkverify.c
/openbmc/qemu/block/block-backend.c
/openbmc/qemu/block/bochs.c
/openbmc/qemu/block/cloop.c
/openbmc/qemu/block/commit.c
/openbmc/qemu/block/copy-before-write.c
/openbmc/qemu/block/copy-on-read.c
/openbmc/qemu/block/crypto.c
/openbmc/qemu/block/curl.c
/openbmc/qemu/block/dmg.c
/openbmc/qemu/block/file-posix.c
/openbmc/qemu/block/file-win32.c
/openbmc/qemu/block/filter-compress.c
/openbmc/qemu/block/gluster.c
/openbmc/qemu/block/io.c
/openbmc/qemu/block/iscsi.c
/openbmc/qemu/block/mirror.c
/openbmc/qemu/block/nbd.c
/openbmc/qemu/block/nfs.c
/openbmc/qemu/block/null.c
/openbmc/qemu/block/nvme.c
/openbmc/qemu/block/preallocate.c
/openbmc/qemu/block/qcow.c
/openbmc/qemu/block/qcow2-cluster.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/block/qed.c
/openbmc/qemu/block/quorum.c
/openbmc/qemu/block/raw-format.c
/openbmc/qemu/block/rbd.c
/openbmc/qemu/block/replication.c
/openbmc/qemu/block/throttle.c
/openbmc/qemu/block/trace-events
/openbmc/qemu/block/vdi.c
/openbmc/qemu/block/vmdk.c
/openbmc/qemu/block/vpc.c
/openbmc/qemu/block/vvfat.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/configs/devices/i386-softmmu/default.mak
/openbmc/qemu/configs/targets/aarch64-linux-user.mak
/openbmc/qemu/configs/targets/aarch64-softmmu.mak
/openbmc/qemu/configs/targets/aarch64_be-linux-user.mak
/openbmc/qemu/configs/targets/arm-linux-user.mak
/openbmc/qemu/configs/targets/arm-softmmu.mak
/openbmc/qemu/configs/targets/armeb-linux-user.mak
/openbmc/qemu/configure
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/devel/build-system.rst
/openbmc/qemu/docs/devel/ci-definitions.rst.inc
/openbmc/qemu/docs/devel/ci-jobs.rst.inc
/openbmc/qemu/docs/devel/ci-runners.rst.inc
/openbmc/qemu/docs/devel/ci.rst
/openbmc/qemu/docs/devel/multi-process.rst
/openbmc/qemu/docs/devel/qgraph.rst
/openbmc/qemu/docs/devel/tcg-plugins.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/hyperv.txt
/openbmc/qemu/docs/meson.build
/openbmc/qemu/docs/system/arm/xlnx-versal-virt.rst
/openbmc/qemu/docs/system/i386/kvm-pv.rst
/openbmc/qemu/docs/system/i386/sgx.rst
/openbmc/qemu/docs/system/ppc/powernv.rst
/openbmc/qemu/docs/system/target-i386.rst
/openbmc/qemu/docs/tools/qemu-nbd.rst
/openbmc/qemu/gdb-xml/arm-neon.xml
/openbmc/qemu/gdb-xml/arm-vfp-sysregs.xml
/openbmc/qemu/gdb-xml/arm-vfp.xml
/openbmc/qemu/gdb-xml/arm-vfp3.xml
/openbmc/qemu/hmp-commands-info.hx
/openbmc/qemu/hw/Kconfig
/openbmc/qemu/hw/acpi/acpi-x86-stub.c
/openbmc/qemu/hw/acpi/aml-build.c
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/acpi/ghes.c
/openbmc/qemu/hw/acpi/hmat.c
/openbmc/qemu/hw/acpi/memory_hotplug.c
/openbmc/qemu/hw/acpi/nvdimm.c
/openbmc/qemu/hw/acpi/pci.c
/openbmc/qemu/hw/acpi/vmgenid.c
/openbmc/qemu/hw/adc/aspeed_adc.c
/openbmc/qemu/hw/adc/meson.build
/openbmc/qemu/hw/adc/trace-events
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/allwinner-h3.c
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast2600.c
/openbmc/qemu/hw/arm/aspeed_soc.c
/openbmc/qemu/hw/arm/sabrelite.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xlnx-versal-virt.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/arm/xlnx-zcu102.c
/openbmc/qemu/hw/arm/xlnx-zynqmp.c
/openbmc/qemu/hw/audio/intel-hda.c
/openbmc/qemu/hw/block/fdc.c
/openbmc/qemu/hw/block/swim.c
/openbmc/qemu/hw/char/ibex_uart.c
/openbmc/qemu/hw/char/mchp_pfsoc_mmuart.c
/openbmc/qemu/hw/char/shakti_uart.c
/openbmc/qemu/hw/char/sifive_uart.c
/openbmc/qemu/hw/char/virtio-serial-bus.c
/openbmc/qemu/hw/core/bus.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/sysbus.c
/openbmc/qemu/hw/display/macfb.c
/openbmc/qemu/hw/display/trace-events
/openbmc/qemu/hw/dma/sifive_pdma.c
/openbmc/qemu/hw/gpio/aspeed_gpio.c
/openbmc/qemu/hw/gpio/bcm2835_gpio.c
/openbmc/qemu/hw/hyperv/vmbus.c
/openbmc/qemu/hw/i2c/aspeed_i2c.c
/openbmc/qemu/hw/i2c/core.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/acpi-common.c
/openbmc/qemu/hw/i386/acpi-microvm.c
/openbmc/qemu/hw/i386/amd_iommu.c
/openbmc/qemu/hw/i386/fw_cfg.c
/openbmc/qemu/hw/i386/kvm/i8254.c
/openbmc/qemu/hw/i386/meson.build
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/i386/sgx-epc.c
/openbmc/qemu/hw/i386/sgx-stub.c
/openbmc/qemu/hw/i386/sgx.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/i386/xen/xen-hvm.c
/openbmc/qemu/hw/ide/ahci.c
/openbmc/qemu/hw/ide/cmd646.c
/openbmc/qemu/hw/ide/isa.c
/openbmc/qemu/hw/ide/macio.c
/openbmc/qemu/hw/ide/microdrive.c
/openbmc/qemu/hw/ide/mmio.c
/openbmc/qemu/hw/ide/piix.c
/openbmc/qemu/hw/ide/qdev.c
/openbmc/qemu/hw/ide/sii3112.c
/openbmc/qemu/hw/ide/via.c
/openbmc/qemu/hw/intc/openpic.c
/openbmc/qemu/hw/intc/openpic_kvm.c
/openbmc/qemu/hw/intc/spapr_xive_kvm.c
/openbmc/qemu/hw/intc/xive.c
/openbmc/qemu/hw/ipack/ipack.c
/openbmc/qemu/hw/ipack/tpci200.c
/openbmc/qemu/hw/isa/isa-bus.c
/openbmc/qemu/hw/m68k/q800.c
/openbmc/qemu/hw/misc/applesmc.c
/openbmc/qemu/hw/misc/auxbus.c
/openbmc/qemu/hw/misc/mac_via.c
/openbmc/qemu/hw/misc/macio/cuda.c
/openbmc/qemu/hw/misc/macio/macio.c
/openbmc/qemu/hw/misc/macio/pmu.c
/openbmc/qemu/hw/nubus/mac-nubus-bridge.c
/openbmc/qemu/hw/nubus/nubus-bridge.c
/openbmc/qemu/hw/nubus/nubus-bus.c
/openbmc/qemu/hw/nubus/nubus-device.c
/openbmc/qemu/hw/nubus/trace-events
/openbmc/qemu/hw/nubus/trace.h
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/nvme/subsys.c
/openbmc/qemu/hw/nvram/Kconfig
/openbmc/qemu/hw/nvram/meson.build
/openbmc/qemu/hw/nvram/xlnx-bbram.c
/openbmc/qemu/hw/nvram/xlnx-efuse-crc.c
/openbmc/qemu/hw/nvram/xlnx-efuse.c
/openbmc/qemu/hw/nvram/xlnx-versal-efuse-cache.c
/openbmc/qemu/hw/nvram/xlnx-versal-efuse-ctrl.c
/openbmc/qemu/hw/nvram/xlnx-zynqmp-efuse.c
/openbmc/qemu/hw/pci-host/raven.c
/openbmc/qemu/hw/pci-host/versatile.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pci_bridge.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_core.c
/openbmc/qemu/hw/ppc/pnv_xscom.c
/openbmc/qemu/hw/ppc/ppc.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_drc.c
/openbmc/qemu/hw/ppc/spapr_hcall.c
/openbmc/qemu/hw/ppc/spapr_numa.c
/openbmc/qemu/hw/ppc/spapr_vio.c
/openbmc/qemu/hw/ppc/trace-events
/openbmc/qemu/hw/remote/proxy-memory-listener.c
/openbmc/qemu/hw/remote/proxy.c
/openbmc/qemu/hw/riscv/shakti_c.c
/openbmc/qemu/hw/s390x/ap-bridge.c
/openbmc/qemu/hw/s390x/css-bridge.c
/openbmc/qemu/hw/s390x/event-facility.c
/openbmc/qemu/hw/s390x/s390-pci-bus.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/s390x/virtio-ccw.c
/openbmc/qemu/hw/scsi/esp-pci.c
/openbmc/qemu/hw/scsi/esp.c
/openbmc/qemu/hw/scsi/lsi53c895a.c
/openbmc/qemu/hw/scsi/megasas.c
/openbmc/qemu/hw/scsi/mptsas.c
/openbmc/qemu/hw/scsi/scsi-bus.c
/openbmc/qemu/hw/scsi/scsi-generic.c
/openbmc/qemu/hw/scsi/spapr_vscsi.c
/openbmc/qemu/hw/scsi/virtio-scsi.c
/openbmc/qemu/hw/scsi/vmw_pvscsi.c
/openbmc/qemu/hw/sd/allwinner-sdhost.c
/openbmc/qemu/hw/sd/bcm2835_sdhost.c
/openbmc/qemu/hw/sd/pl181.c
/openbmc/qemu/hw/sd/pxa2xx_mmci.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/sd/ssi-sd.c
/openbmc/qemu/hw/ssi/aspeed_smc.c
/openbmc/qemu/hw/ssi/ssi.c
/openbmc/qemu/hw/tpm/tpm_ppi.c
/openbmc/qemu/hw/usb/bus.c
/openbmc/qemu/hw/usb/dev-smartcard-reader.c
/openbmc/qemu/hw/usb/dev-storage-bot.c
/openbmc/qemu/hw/usb/dev-storage-classic.c
/openbmc/qemu/hw/usb/dev-uas.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/spapr.c
/openbmc/qemu/hw/virtio/vhost-user-vsock.c
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/hw/virtio/vhost-vsock-common.c
/openbmc/qemu/hw/virtio/vhost-vsock.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/virtio/virtio-balloon.c
/openbmc/qemu/hw/virtio/virtio-mem-pci.c
/openbmc/qemu/hw/virtio/virtio-mmio.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/hw/watchdog/trace-events
/openbmc/qemu/hw/watchdog/wdt_aspeed.c
/openbmc/qemu/hw/xen/xen-bus.c
/openbmc/qemu/hw/xen/xen-legacy-backend.c
/openbmc/qemu/hw/xen/xen_pt.c
/openbmc/qemu/include/block/block.h
/openbmc/qemu/include/block/block_int.h
/openbmc/qemu/include/exec/memop.h
/openbmc/qemu/include/exec/memopidx.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/acpi/acpi-defs.h
/openbmc/qemu/include/hw/acpi/acpi_dev_interface.h
/openbmc/qemu/include/hw/acpi/aml-build.h
/openbmc/qemu/include/hw/acpi/ich9.h
/openbmc/qemu/include/hw/adc/aspeed_adc.h
/openbmc/qemu/include/hw/arm/aspeed_soc.h
/openbmc/qemu/include/hw/arm/xlnx-versal.h
/openbmc/qemu/include/hw/arm/xlnx-zynqmp.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/char/mchp_pfsoc_mmuart.h
/openbmc/qemu/include/hw/core/cpu.h
/openbmc/qemu/include/hw/display/macfb.h
/openbmc/qemu/include/hw/gpio/aspeed_gpio.h
/openbmc/qemu/include/hw/i2c/aspeed_i2c.h
/openbmc/qemu/include/hw/i386/hostmem-epc.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/i386/sgx-epc.h
/openbmc/qemu/include/hw/i386/sgx.h
/openbmc/qemu/include/hw/i386/x86.h
/openbmc/qemu/include/hw/ide/internal.h
/openbmc/qemu/include/hw/ipack/ipack.h
/openbmc/qemu/include/hw/nubus/mac-nubus-bridge.h
/openbmc/qemu/include/hw/nubus/nubus.h
/openbmc/qemu/include/hw/nvram/xlnx-bbram.h
/openbmc/qemu/include/hw/nvram/xlnx-efuse.h
/openbmc/qemu/include/hw/nvram/xlnx-versal-efuse.h
/openbmc/qemu/include/hw/nvram/xlnx-zynqmp-efuse.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/ppc/openpic.h
/openbmc/qemu/include/hw/ppc/pnv_core.h
/openbmc/qemu/include/hw/ppc/spapr.h
/openbmc/qemu/include/hw/ppc/spapr_numa.h
/openbmc/qemu/include/hw/ppc/spapr_ovec.h
/openbmc/qemu/include/hw/ppc/xive.h
/openbmc/qemu/include/hw/qdev-core.h
/openbmc/qemu/include/hw/scsi/scsi.h
/openbmc/qemu/include/hw/ssi/aspeed_smc.h
/openbmc/qemu/include/hw/virtio/vhost-vsock-common.h
/openbmc/qemu/include/monitor/hmp-target.h
/openbmc/qemu/include/qemu/host-utils.h
/openbmc/qemu/include/qemu/job.h
/openbmc/qemu/include/qemu/plugin.h
/openbmc/qemu/include/sysemu/block-backend.h
/openbmc/qemu/include/sysemu/kvm_int.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/io/dns-resolver.c
/openbmc/qemu/iothread.c
/openbmc/qemu/job.c
/openbmc/qemu/linux-user/aarch64/signal.c
/openbmc/qemu/linux-user/aarch64/target_signal.h
/openbmc/qemu/linux-user/alpha/signal.c
/openbmc/qemu/linux-user/alpha/target_signal.h
/openbmc/qemu/linux-user/arm/signal.c
/openbmc/qemu/linux-user/arm/target_signal.h
/openbmc/qemu/linux-user/cris/signal.c
/openbmc/qemu/linux-user/cris/target_signal.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/hexagon/signal.c
/openbmc/qemu/linux-user/hexagon/target_signal.h
/openbmc/qemu/linux-user/hppa/target_signal.h
/openbmc/qemu/linux-user/i386/signal.c
/openbmc/qemu/linux-user/i386/target_signal.h
/openbmc/qemu/linux-user/m68k/signal.c
/openbmc/qemu/linux-user/m68k/target_signal.h
/openbmc/qemu/linux-user/microblaze/signal.c
/openbmc/qemu/linux-user/microblaze/target_signal.h
/openbmc/qemu/linux-user/mips/signal.c
/openbmc/qemu/linux-user/mips/target_signal.h
/openbmc/qemu/linux-user/mips64/target_signal.h
/openbmc/qemu/linux-user/nios2/target_signal.h
/openbmc/qemu/linux-user/openrisc/signal.c
/openbmc/qemu/linux-user/openrisc/target_signal.h
/openbmc/qemu/linux-user/ppc/signal.c
/openbmc/qemu/linux-user/ppc/target_signal.h
/openbmc/qemu/linux-user/riscv/signal.c
/openbmc/qemu/linux-user/riscv/target_signal.h
/openbmc/qemu/linux-user/s390x/signal.c
/openbmc/qemu/linux-user/s390x/target_signal.h
/openbmc/qemu/linux-user/sh4/signal.c
/openbmc/qemu/linux-user/sh4/target_signal.h
/openbmc/qemu/linux-user/signal-common.h
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/linux-user/sparc/signal.c
/openbmc/qemu/linux-user/sparc/target_signal.h
/openbmc/qemu/linux-user/x86_64/target_signal.h
/openbmc/qemu/linux-user/xtensa/signal.c
/openbmc/qemu/linux-user/xtensa/target_signal.h
/openbmc/qemu/meson
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/block-dirty-bitmap.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/monitor/monitor.c
/openbmc/qemu/nbd/client-connection.c
/openbmc/qemu/nbd/client.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/pc-bios/descriptors/meson.build
/openbmc/qemu/pc-bios/meson.build
/openbmc/qemu/plugins/api.c
/openbmc/qemu/plugins/core.c
/openbmc/qemu/plugins/meson.build
/openbmc/qemu/plugins/qemu-plugins.symbols
qemu/aqmp/qmp_client.py
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/misc-target.json
/openbmc/qemu/qapi/qdev.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/sockets.json
/openbmc/qemu/qemu-nbd.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/qapi-schema.json
/openbmc/qemu/scripts/mtest2make.py
/openbmc/qemu/scripts/qapi/gen.py
/openbmc/qemu/scripts/qapi/mypy.ini
/openbmc/qemu/scripts/qapi/parser.py
/openbmc/qemu/scripts/qapi/pylintrc
/openbmc/qemu/softmmu/memory.c
/openbmc/qemu/softmmu/memory_mapping.c
/openbmc/qemu/softmmu/physmem.c
/openbmc/qemu/softmmu/trace-events
/openbmc/qemu/storage-daemon/qemu-storage-daemon.c
/openbmc/qemu/stubs/qdev.c
/openbmc/qemu/target/arm/gdbstub.c
/openbmc/qemu/target/arm/gdbstub64.c
/openbmc/qemu/target/arm/helper-a64.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/arm/m_helper.c
/openbmc/qemu/target/arm/psci.c
/openbmc/qemu/target/arm/translate-a64.c
/openbmc/qemu/target/hexagon/gen_tcg.h
/openbmc/qemu/target/hexagon/gen_tcg_funcs.py
/openbmc/qemu/target/hexagon/genptr.c
/openbmc/qemu/target/hexagon/helper.h
/openbmc/qemu/target/hexagon/macros.h
/openbmc/qemu/target/hexagon/meson.build
/openbmc/qemu/target/hexagon/op_helper.c
/openbmc/qemu/target/hexagon/translate.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/hax/hax-mem.c
/openbmc/qemu/target/i386/kvm/hyperv-proto.h
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/kvm/kvm_i386.h
/openbmc/qemu/target/i386/machine.c
/openbmc/qemu/target/i386/monitor.c
/openbmc/qemu/target/i386/nvmm/nvmm-all.c
/openbmc/qemu/target/i386/sev-stub.c
/openbmc/qemu/target/i386/sev.c
/openbmc/qemu/target/i386/sev_i386.h
/openbmc/qemu/target/i386/tcg/mem_helper.c
/openbmc/qemu/target/i386/whpx/whpx-all.c
/openbmc/qemu/target/m68k/op_helper.c
/openbmc/qemu/target/mips/tcg/msa_helper.c
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/int_helper.c
/openbmc/qemu/target/ppc/trace-events
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/riscv/bitmanip_helper.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/helper.h
/openbmc/qemu/target/riscv/insn32.decode
/openbmc/qemu/target/riscv/insn_trans/trans_rvb.c.inc
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/s390x/tcg/mem_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/s390x/tcg/translate_vx.c.inc
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/xtensa/cores.list
/openbmc/qemu/target/xtensa/import_core.sh
/openbmc/qemu/target/xtensa/meson.build
/openbmc/qemu/tcg/aarch64/tcg-target.c.inc
/openbmc/qemu/tcg/arm/tcg-target.c.inc
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tcg/mips/tcg-target.c.inc
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/s390x/tcg-target-con-set.h
/openbmc/qemu/tcg/s390x/tcg-target-con-str.h
/openbmc/qemu/tcg/s390x/tcg-target.c.inc
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target.opc.h
/openbmc/qemu/tcg/sparc/tcg-target.c.inc
/openbmc/qemu/tcg/tcg-ldst.c.inc
/openbmc/qemu/tcg/tcg-op-vec.c
/openbmc/qemu/tcg/tcg-op.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tci.c
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/acceptance/avocado_qemu/__init__.py
/openbmc/qemu/tests/acceptance/boot_linux_console.py
/openbmc/qemu/tests/acceptance/boot_xen.py
/openbmc/qemu/tests/acceptance/ppc_mpc8544ds.py
/openbmc/qemu/tests/acceptance/ppc_prep_40p.py
/openbmc/qemu/tests/acceptance/ppc_pseries.py
/openbmc/qemu/tests/acceptance/ppc_virtex_ml507.py
/openbmc/qemu/tests/acceptance/replay_kernel.py
/openbmc/qemu/tests/acceptance/replay_linux.py
/openbmc/qemu/tests/acceptance/vnc.py
/openbmc/qemu/tests/data/acpi/q35/DSDT
/openbmc/qemu/tests/data/acpi/q35/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/q35/DSDT.bridge
/openbmc/qemu/tests/data/acpi/q35/DSDT.cphp
/openbmc/qemu/tests/data/acpi/q35/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/q35/DSDT.ipmibt
/openbmc/qemu/tests/data/acpi/q35/DSDT.memhp
/openbmc/qemu/tests/data/acpi/q35/DSDT.mmio64
/openbmc/qemu/tests/data/acpi/q35/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/q35/DSDT.numamem
/openbmc/qemu/tests/data/acpi/q35/DSDT.tis.tpm12
/openbmc/qemu/tests/data/acpi/q35/DSDT.tis.tpm2
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/common.rc
/openbmc/qemu/tests/docker/dockerfiles/debian-native.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-i386-cross.docker
/openbmc/qemu/tests/qapi-schema/doc-bad-feature.err
/openbmc/qemu/tests/qapi-schema/doc-empty-symbol.err
/openbmc/qemu/tests/qapi-schema/doc-good.json
/openbmc/qemu/tests/qapi-schema/meson.build
/openbmc/qemu/tests/qemu-iotests/109.out
/openbmc/qemu/tests/qemu-iotests/235
/openbmc/qemu/tests/qemu-iotests/297
/openbmc/qemu/tests/qemu-iotests/300
/openbmc/qemu/tests/qemu-iotests/iotests.py
/openbmc/qemu/tests/qemu-iotests/pylintrc
/openbmc/qemu/tests/qemu-iotests/testenv.py
/openbmc/qemu/tests/qemu-iotests/testrunner.py
/openbmc/qemu/tests/qemu-iotests/tests/image-fleecing
/openbmc/qemu/tests/qemu-iotests/tests/migrate-bitmaps-test
/openbmc/qemu/tests/qemu-iotests/tests/mirror-ready-cancel-error
/openbmc/qemu/tests/qemu-iotests/tests/mirror-ready-cancel-error.out
/openbmc/qemu/tests/qemu-iotests/tests/mirror-top-perms
/openbmc/qemu/tests/qemu-iotests/tests/qsd-jobs.out
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/numa-test.c
/openbmc/qemu/tests/qtest/qmp-cmd-test.c
/openbmc/qemu/tests/tcg/hexagon/Makefile.target
/openbmc/qemu/tests/tcg/hexagon/hex_sigsegv.c
/openbmc/qemu/tests/tcg/hppa/Makefile.target
/openbmc/qemu/tests/tcg/i386/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/libs/float_helpers.c
/openbmc/qemu/tests/tcg/multiarch/linux/linux-test.c
/openbmc/qemu/tests/tcg/multiarch/sha1.c
/openbmc/qemu/tests/tcg/sh4/Makefile.target
/openbmc/qemu/tests/tcg/x86_64/Makefile.target
/openbmc/qemu/tests/unit/meson.build
/openbmc/qemu/tests/unit/test-bdrv-drain.c
/openbmc/qemu/tests/unit/test-block-iothread.c
/openbmc/qemu/tests/unit/test-blockjob.c
/openbmc/qemu/trace-events
/openbmc/qemu/trace/meson.build
/openbmc/qemu/util/host-utils.c
/openbmc/qemu/util/qemu-sockets.c
99e45a6123-Aug-2021 G S Niteesh Babu <niteesh.gs@gmail.com>

python/aqmp-tui: Add syntax highlighting

Add syntax highlighting for the incoming and outgoing QMP messages.
This is achieved using the pygments module which was added in a
previous commit.

The cur

python/aqmp-tui: Add syntax highlighting

Add syntax highlighting for the incoming and outgoing QMP messages.
This is achieved using the pygments module which was added in a
previous commit.

The current implementation is a really simple one which doesn't
allow for any configuration. In future this has to be improved
to allow for easier theme config using an external config of
some sort.

Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-6-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

f37c34d623-Aug-2021 G S Niteesh Babu <niteesh.gs@gmail.com>

python: add optional pygments dependency

Added pygments as optional dependency for AQMP TUI.
This is required for the upcoming syntax highlighting feature
in AQMP TUI.
The dependency has also been a

python: add optional pygments dependency

Added pygments as optional dependency for AQMP TUI.
This is required for the upcoming syntax highlighting feature
in AQMP TUI.
The dependency has also been added in the devel optional group.

Added mypy 'ignore_missing_imports' for pygments since it does
not have any type stubs.

Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-5-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

35755f7d23-Aug-2021 G S Niteesh Babu <niteesh.gs@gmail.com>

python: Add entry point for aqmp-tui

Add an entry point for aqmp-tui. This will allow it to be run from
the command line using "aqmp-tui localhost:1234"
More options available in the TUI can be foun

python: Add entry point for aqmp-tui

Add an entry point for aqmp-tui. This will allow it to be run from
the command line using "aqmp-tui localhost:1234"
More options available in the TUI can be found using "aqmp-tui -h"

Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-4-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

aeb6b48a23-Aug-2021 G S Niteesh Babu <niteesh.gs@gmail.com>

python/aqmp-tui: Add AQMP TUI

Added AQMP TUI.

Implements the follwing basic features:
1) Command transmission/reception.
2) Shows events asynchronously.
3) Shows server status in the bottom status

python/aqmp-tui: Add AQMP TUI

Added AQMP TUI.

Implements the follwing basic features:
1) Command transmission/reception.
2) Shows events asynchronously.
3) Shows server status in the bottom status bar.
4) Automatic retries on disconnects and error conditions.

Also added type annotations and necessary pylint/mypy configurations.

Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-3-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

974e2f4723-Aug-2021 G S Niteesh Babu <niteesh.gs@gmail.com>

python: Add dependencies for AQMP TUI

Added dependencies for the upcoming AQMP TUI under the optional
'tui' group.

The same dependencies have also been added under the devel group
since no work aro

python: Add dependencies for AQMP TUI

Added dependencies for the upcoming AQMP TUI under the optional
'tui' group.

The same dependencies have also been added under the devel group
since no work around has been found for optional groups to imply
other optional groups.

Signed-off-by: G S Niteesh Babu <niteesh.gs@gmail.com>
Message-Id: <20210823220746.28295-2-niteesh.gs@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

a4ffaecd15-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: Add Coverage.py support

I'm not exposing this via the Makefile help, it's not likely to be
useful to passersby. Switch the avocado runner to the 'legacy' runner
for now, as the new runn

python/aqmp: Add Coverage.py support

I'm not exposing this via the Makefile help, it's not likely to be
useful to passersby. Switch the avocado runner to the 'legacy' runner
for now, as the new runner seems to obscure coverage reports, again.

Usage is to enter your venv of choice and then:
`make check-coverage && xdg-open htmlcov/index.html`.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-28-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

8193b9d115-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add LineProtocol tests

Tests a real connect, a real accept, and really sending and receiving a
message over a UNIX socket.

Brings coverage of protocol.py up to ~93%.

Signed-off-by: Jo

python/aqmp: add LineProtocol tests

Tests a real connect, a real accept, and really sending and receiving a
message over a UNIX socket.

Brings coverage of protocol.py up to ~93%.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-27-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

a1f71b6115-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add AsyncProtocol unit tests

This tests most of protocol.py -- From a hacked up Coverage.py run, it's
at about 86%. There's a few error cases that aren't very well tested
yet, they're h

python/aqmp: add AsyncProtocol unit tests

This tests most of protocol.py -- From a hacked up Coverage.py run, it's
at about 86%. There's a few error cases that aren't very well tested
yet, they're hard to induce artificially so far. I'm working on it.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-26-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

4320f71715-Sep-2021 John Snow <jsnow@redhat.com>

python: bump avocado to v90.0

Avocado v90 includes improved support for running async unit tests. The
workaround that existed prior to v90 causes the unit tests to fail
afterwards, however, so upgra

python: bump avocado to v90.0

Avocado v90 includes improved support for running async unit tests. The
workaround that existed prior to v90 causes the unit tests to fail
afterwards, however, so upgrade our minimum version pin to the very
latest and greatest.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-25-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

ed6d4d7a15-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add scary message

Add a warning whenever AQMP is used to steer people gently away from
using it for the time-being.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 202109151629

python/aqmp: add scary message

Add a warning whenever AQMP is used to steer people gently away from
using it for the time-being.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-24-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

debbabd715-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add asyncio_run compatibility wrapper

As a convenience. It isn't used by the library itself, but it is used by
the test suite. It will also come in handy for users of the library
still

python/aqmp: add asyncio_run compatibility wrapper

As a convenience. It isn't used by the library itself, but it is used by
the test suite. It will also come in handy for users of the library
still on Python 3.6.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-23-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

41f4f92215-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add _raw() execution interface

This is added in anticipation of wanting it for a synchronous wrapper
for the iotest interface. Normally, execute() and execute_msg() both
raise QMP error

python/aqmp: add _raw() execution interface

This is added in anticipation of wanting it for a synchronous wrapper
for the iotest interface. Normally, execute() and execute_msg() both
raise QMP errors in the form of Python exceptions.

Many iotests expect the entire reply as-is. To reduce churn there, add a
private execution interface that will ease transition churn. However, I
do not wish to encourage its use, so it will remain a private interface.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-22-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

e0fea0b315-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add execute() interfaces

Add execute() and execute_msg().

_execute() is split into _issue() and _reply() halves so that
hypothetical subclasses of QMP that want to support different ex

python/aqmp: add execute() interfaces

Add execute() and execute_msg().

_execute() is split into _issue() and _reply() halves so that
hypothetical subclasses of QMP that want to support different execution
paradigms can do so.

I anticipate a synchronous interface may have need of separating the
send/reply phases. However, I do not wish to expose that interface here
and want to actively discourage it, so they remain private interfaces.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-21-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

577737be15-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: Add message routing to QMP protocol

Add the ability to handle and route messages in qmp_protocol.py. The
interface for actually sending anything still isn't added until next
commit.

Si

python/aqmp: Add message routing to QMP protocol

Add the ability to handle and route messages in qmp_protocol.py. The
interface for actually sending anything still isn't added until next
commit.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-20-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

4cd17f3715-Sep-2021 John Snow <jsnow@redhat.com>

python/pylint: disable no-member check

mypy handles this better -- but we only need the workaround because
pylint under Python 3.6 does not understand that a MutableMapping really
does have a .get()

python/pylint: disable no-member check

mypy handles this better -- but we only need the workaround because
pylint under Python 3.6 does not understand that a MutableMapping really
does have a .get() method attached.

We could remove this again once 3.7 is our minimum.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-19-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

c67d696b15-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add QMP protocol support

The star of our show!

Add most of the QMP protocol, sans support for actually executing
commands. No problem, that happens in the next several commits.

Signed

python/aqmp: add QMP protocol support

The star of our show!

Add most of the QMP protocol, sans support for actually executing
commands. No problem, that happens in the next several commits.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-18-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

29a8ea9b15-Sep-2021 John Snow <jsnow@redhat.com>

python/pylint: disable too-many-function-args

too-many-function-args seems prone to failure when considering
things like Method Resolution Order, which mypy gets correct. When
dealing with multiple

python/pylint: disable too-many-function-args

too-many-function-args seems prone to failure when considering
things like Method Resolution Order, which mypy gets correct. When
dealing with multiple inheritance, pylint doesn't seem to understand
which method will actually get called, while mypy does.

Remove the less powerful, redundant check.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-17-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

b3cda21315-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add QMP event support

This class was designed as a "mix-in" primarily so that the feature
could be given its own treatment in its own python module.

It gets quite a bit too long otherw

python/aqmp: add QMP event support

This class was designed as a "mix-in" primarily so that the feature
could be given its own treatment in its own python module.

It gets quite a bit too long otherwise.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-16-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

ad07299915-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add well-known QMP object models

The QMP spec doesn't define very many objects that are iron-clad in
their format, but there are a few. This module makes it trivial to
validate them wit

python/aqmp: add well-known QMP object models

The QMP spec doesn't define very many objects that are iron-clad in
their format, but there are a few. This module makes it trivial to
validate them without relying on an external third-party library.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210915162955.333025-15-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

08f98a2215-Sep-2021 John Snow <jsnow@redhat.com>

python/aqmp: add QMP Message format

The Message class is here primarily to serve as a solid type to use for
mypy static typing for unambiguous annotation and documentation.

We can also stuff JSON s

python/aqmp: add QMP Message format

The Message class is here primarily to serve as a solid type to use for
mypy static typing for unambiguous annotation and documentation.

We can also stuff JSON serialization and deserialization into this class
itself so it can be re-used even outside this infrastructure.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20210915162955.333025-14-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

show more ...

12345678910>>...14