[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [qemu-upstream-unstable] Merge remote-tracking branch 'xen-staging/master' into temp2
=== This changeset includes merge from high-traffic branch === Commits on that branch are not reported individually. commit 0d37748342e29854db7c9f6c47d7f58c6cfba6b2 Merge: 45e1611de8be0eae55967694dd6e627c2dc354f2 1ebb75b1fee779621b63e84fefa7b07354c43a99 Author: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> AuthorDate: Fri Jan 16 15:20:40 2015 +0000 Commit: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> CommitDate: Fri Jan 16 15:20:40 2015 +0000 Merge remote-tracking branch 'xen-staging/master' into temp2 .gitignore | 24 +- .gitmodules | 3 + .travis.yml | 63 +- CODING_STYLE | 14 + MAINTAINERS | 178 +- Makefile | 77 +- Makefile.objs | 22 +- Makefile.target | 78 +- VERSION | 2 +- accel.c | 157 + aio-posix.c | 50 +- aio-win32.c | 268 +- arch_init.c | 413 +- async.c | 74 +- audio/Makefile.objs | 2 +- audio/alsaaudio.c | 12 +- audio/audio.c | 3 +- audio/audio_template.h | 15 +- audio/ossaudio.c | 6 +- audio/spiceaudio.c | 2 +- audio/wavcapture.c | 3 +- backends/Makefile.objs | 7 +- backends/baum.c | 4 +- backends/hostmem-file.c | 134 + backends/hostmem-ram.c | 53 + backends/hostmem.c | 365 + backends/msmouse.c | 4 +- backends/rng-egd.c | 1 + backends/rng-random.c | 5 +- backends/rng.c | 11 +- backends/testdev.c | 131 + backends/tpm.c | 11 +- balloon.c | 13 - block-migration.c | 95 +- block.c | 1972 +++-- block/Makefile.objs | 11 +- block/accounting.c | 54 + block/archipelago.c | 1084 +++ block/backup.c | 27 +- block/blkdebug.c | 170 +- block/blkverify.c | 112 +- block/block-backend.c | 631 ++ block/bochs.c | 29 +- block/cloop.c | 35 +- block/commit.c | 79 +- block/cow.c | 432 - block/curl.c | 475 +- block/dmg.c | 27 +- block/gluster.c | 100 +- block/iscsi.c | 732 ++- block/linux-aio.c | 236 +- block/mirror.c | 194 +- block/nbd-client.c | 24 +- block/nbd-client.h | 4 + block/nbd.c | 139 +- block/nfs.c | 142 +- block/null.c | 168 + block/parallels.c | 60 +- block/qapi.c | 70 +- block/qcow.c | 118 +- block/qcow2-cache.c | 22 +- block/qcow2-cluster.c | 264 +- block/qcow2-refcount.c | 1014 ++- block/qcow2-snapshot.c | 31 +- block/qcow2.c | 828 ++- block/qcow2.h | 30 +- block/qed-check.c | 6 +- block/qed-gencb.c | 4 +- block/qed-table.c | 18 +- block/qed.c | 282 +- block/qed.h | 16 +- block/quorum.c | 406 +- block/raw-aio.h | 18 +- block/raw-posix.c | 617 +- block/raw-win32.c | 113 +- block/raw_bsd.c | 36 +- block/rbd.c | 246 +- block/sheepdog.c | 491 +- block/snapshot.c | 4 + block/ssh.c | 228 +- block/stream.c | 69 +- block/vdi.c | 211 +- block/vhdx-endian.c | 11 +- block/vhdx-log.c | 57 +- block/vhdx.c | 230 +- block/vhdx.h | 2 + block/vmdk.c | 481 +- block/vpc.c | 206 +- block/vvfat.c | 68 +- block/win32-aio.c | 55 +- blockdev-nbd.c | 2 +- blockdev.c | 796 ++- blockjob.c | 172 +- bootdevice.c | 258 + bsd-user/freebsd/strace.list | 76 +- bsd-user/freebsd/syscall_nr.h | 813 ++- bsd-user/main.c | 6 +- bsd-user/mmap.c | 60 - bsd-user/qemu.h | 27 + bsd-user/strace.c | 167 +- configure | 528 +- coroutine-gthread.c | 36 +- coroutine-sigaltstack.c | 2 +- cpu-exec.c | 466 +- cpus.c | 180 +- cputlb.c | 58 +- default-configs/i386-softmmu.mak | 1 + default-configs/mips-softmmu.mak | 1 - default-configs/mips64-softmmu.mak | 1 - default-configs/mipsel-softmmu.mak | 1 - default-configs/ppc-linux-user.mak | 1 + default-configs/ppc-softmmu.mak | 3 +- default-configs/ppc64-linux-user.mak | 1 + default-configs/ppc64-softmmu.mak | 2 + default-configs/ppc64abi32-linux-user.mak | 1 + default-configs/ppc64le-linux-user.mak | 2 + default-configs/ppcemb-softmmu.mak | 1 + default-configs/s390x-softmmu.mak | 3 +- default-configs/usb.mak | 1 + default-configs/x86_64-softmmu.mak | 1 + device-hotplug.c | 5 +- device_tree.c | 55 +- disas.c | 21 +- disas/Makefile.objs | 2 +- disas/arm-a64.cc | 2 +- disas/libvixl/README | 2 +- disas/libvixl/a64/assembler-a64.h | 1133 ++- disas/libvixl/a64/constants-a64.h | 104 +- disas/libvixl/a64/cpu-a64.h | 27 + disas/libvixl/a64/decoder-a64.cc | 85 +- disas/libvixl/a64/decoder-a64.h | 103 +- disas/libvixl/a64/disasm-a64.cc | 486 +- disas/libvixl/a64/disasm-a64.h | 85 +- disas/libvixl/a64/instructions-a64.cc | 73 +- disas/libvixl/a64/instructions-a64.h | 102 +- disas/libvixl/code-buffer.h | 113 + disas/libvixl/globals.h | 42 +- disas/libvixl/platform.h | 10 +- disas/libvixl/utils.cc | 48 +- disas/libvixl/utils.h | 111 +- disas/mips.c | 929 +++- disas/sparc.c | 34 +- dma-helpers.c | 89 +- docs/aio_notify.promela | 104 + docs/blkdebug.txt | 161 + docs/ccid.txt | 80 +- docs/image-fuzzer.txt | 239 + docs/memory.txt | 25 +- docs/migration.txt | 18 +- docs/multiple-iothreads.txt | 134 + docs/multiseat.txt | 102 + docs/qapi-code-gen.txt | 345 +- docs/qmp/qmp-events.txt | 130 +- docs/rdma.txt | 6 +- docs/specs/acpi_mem_hotplug.txt | 44 + docs/specs/qcow2.txt | 20 +- docs/specs/standard-vga.txt | 22 +- docs/specs/vhost-user.txt | 266 + docs/tracing.txt | 50 +- docs/virtio-balloon-stats.txt | 5 +- docs/writing-qmp-commands.txt | 30 +- dump.c | 779 +-- exec.c | 464 +- fpu/softfloat.c | 37 +- fsdev/virtfs-proxy-helper.c | 1 + gdb-xml/s390-acr.xml | 26 + gdb-xml/s390-fpr.xml | 27 + gdb-xml/s390x-core64.xml | 28 + gdbstub.c | 39 +- hmp-commands.hx | 64 +- hmp.c | 273 +- hmp.h | 24 + hw/9pfs/virtio-9p-device.c | 3 +- hw/9pfs/virtio-9p-local.c | 50 +- hw/9pfs/virtio-9p-proxy.c | 11 +- hw/9pfs/virtio-9p-synth.c | 2 +- hw/9pfs/virtio-9p.c | 9 +- hw/Makefile.objs | 1 + hw/acpi/Makefile.objs | 2 + hw/acpi/acpi_interface.c | 15 + hw/acpi/core.c | 11 +- hw/acpi/cpu_hotplug.c | 34 +- hw/acpi/ich9.c | 91 +- hw/acpi/memory_hotplug.c | 223 + hw/acpi/pcihp.c | 23 +- hw/acpi/piix4.c | 111 +- hw/alpha/dp264.c | 14 +- hw/alpha/typhoon.c | 6 +- hw/arm/armv7m.c | 15 +- hw/arm/boot.c | 97 +- hw/arm/collie.c | 20 +- hw/arm/cubieboard.c | 24 +- hw/arm/digic_boards.c | 4 +- hw/arm/exynos4210.c | 9 +- hw/arm/exynos4_boards.c | 22 +- hw/arm/gumstix.c | 12 +- hw/arm/highbank.c | 32 +- hw/arm/integratorcp.c | 17 +- hw/arm/kzm.c | 16 +- hw/arm/mainstone.c | 25 +- hw/arm/musicpal.c | 37 +- hw/arm/nseries.c | 345 +- hw/arm/omap1.c | 14 +- hw/arm/omap2.c | 10 +- hw/arm/omap_sx1.c | 37 +- hw/arm/palm.c | 13 +- hw/arm/pxa2xx.c | 37 +- hw/arm/pxa2xx_gpio.c | 20 +- hw/arm/pxa2xx_pic.c | 1 - hw/arm/realview.c | 55 +- hw/arm/spitz.c | 154 +- hw/arm/stellaris.c | 47 +- hw/arm/strongarm.c | 27 +- hw/arm/tosa.c | 15 +- hw/arm/versatilepb.c | 32 +- hw/arm/vexpress.c | 64 +- hw/arm/virt.c | 306 +- hw/arm/xilinx_zynq.c | 25 +- hw/arm/z2.c | 20 +- hw/audio/ac97.c | 23 +- hw/audio/adlib.c | 10 +- hw/audio/cs4231.c | 3 +- hw/audio/cs4231a.c | 3 +- hw/audio/es1370.c | 14 +- hw/audio/gus.c | 5 +- hw/audio/hda-codec.c | 10 +- hw/audio/intel-hda.c | 16 +- hw/audio/lm4549.c | 5 +- hw/audio/marvell_88w8618.c | 1 - hw/audio/milkymist-ac97.c | 3 +- hw/audio/pl041.c | 9 +- hw/audio/sb16.c | 9 +- hw/audio/wm8750.c | 3 +- hw/block/Makefile.objs | 2 +- hw/block/block.c | 41 +- hw/block/dataplane/Makefile.objs | 2 +- hw/block/dataplane/ioq.c | 117 - hw/block/dataplane/ioq.h | 57 - hw/block/dataplane/virtio-blk.c | 410 +- hw/block/dataplane/virtio-blk.h | 2 +- hw/block/ecc.c | 3 +- hw/block/fdc.c | 182 +- hw/block/hd-geometry.c | 24 +- hw/block/m25p80.c | 48 +- hw/block/nand.c | 53 +- hw/block/nvme.c | 75 +- hw/block/nvme.h | 2 +- hw/block/onenand.c | 74 +- hw/block/pflash_cfi01.c | 71 +- hw/block/pflash_cfi02.c | 33 +- hw/block/virtio-blk.c | 462 +- hw/block/xen_disk.c | 95 +- hw/bt/l2cap.c | 2 +- hw/char/cadence_uart.c | 1 - hw/char/digic-uart.c | 1 - hw/char/escc.c | 239 +- hw/char/exynos4210_uart.c | 2 - hw/char/imx_serial.c | 1 - hw/char/ipoctal232.c | 9 +- hw/char/lm32_juart.c | 3 +- hw/char/lm32_uart.c | 3 +- hw/char/milkymist-uart.c | 3 +- hw/char/parallel.c | 18 + hw/char/pl011.c | 3 +- hw/char/sclpconsole-lm.c | 15 +- hw/char/sclpconsole.c | 15 +- hw/char/serial-pci.c | 17 +- hw/char/serial.c | 292 +- hw/char/spapr_vty.c | 3 +- hw/char/virtio-console.c | 12 +- hw/char/virtio-serial-bus.c | 152 +- hw/char/xilinx_uartlite.c | 32 +- hw/core/Makefile.objs | 2 + hw/core/hotplug.c | 11 + hw/core/irq.c | 44 +- hw/core/loader.c | 111 +- hw/core/machine.c | 343 + hw/core/nmi.c | 84 + hw/core/null-machine.c | 2 +- hw/core/platform-bus.c | 253 + hw/core/ptimer.c | 3 +- hw/core/qdev-properties-system.c | 96 +- hw/core/qdev-properties.c | 70 +- hw/core/qdev.c | 410 +- hw/core/sysbus.c | 104 +- hw/cpu/icc_bus.c | 12 +- hw/cris/axis_dev88.c | 20 +- hw/display/ads7846.c | 3 +- hw/display/blizzard.c | 8 - hw/display/cg3.c | 33 +- hw/display/cirrus_vga.c | 178 +- hw/display/cirrus_vga_rop.h | 3 +- hw/display/cirrus_vga_template.h | 102 - hw/display/exynos4210_fimd.c | 4 +- hw/display/g364fb.c | 1 - hw/display/jazz_led.c | 2 +- hw/display/milkymist-tmu2.c | 3 +- hw/display/milkymist-vgafb.c | 3 +- hw/display/omap_lcd_template.h | 10 +- hw/display/pxa2xx_lcd.c | 30 +- hw/display/qxl-render.c | 15 +- hw/display/qxl.c | 76 +- hw/display/qxl.h | 1 + hw/display/sm501.c | 2 +- hw/display/sm501_template.h | 6 +- hw/display/ssd0303.c | 3 +- hw/display/tc6393xb.c | 7 +- hw/display/tcx.c | 721 ++- hw/display/vga-helpers.h | 439 ++ hw/display/vga-isa-mm.c | 2 +- hw/display/vga-isa.c | 2 +- hw/display/vga-pci.c | 136 +- hw/display/vga.c | 627 +- hw/display/vga_int.h | 13 +- hw/display/vga_template.h | 461 -- hw/display/vmware_vga.c | 135 +- hw/display/xenfb.c | 8 +- hw/dma/i82374.c | 7 +- hw/dma/i8257.c | 10 +- hw/dma/omap_dma.c | 12 +- hw/dma/pl330.c | 5 - hw/dma/pxa2xx_dma.c | 2 - hw/dma/sparc32_dma.c | 3 +- hw/dma/sun4m_iommu.c | 3 +- hw/dma/xilinx_axidma.c | 31 +- hw/gpio/Makefile.objs | 1 + hw/gpio/max7310.c | 3 +- hw/gpio/mpc8xxx.c | 217 + hw/gpio/pl061.c | 61 +- hw/gpio/zaurus.c | 3 +- hw/i2c/core.c | 6 +- hw/i2c/pm_smbus.c | 68 +- hw/i2c/smbus.c | 68 +- hw/i2c/smbus_eeprom.c | 2 +- hw/i2c/smbus_ich9.c | 1 - hw/i386/Makefile.objs | 7 +- hw/i386/acpi-build.c | 313 +- hw/i386/acpi-defs.h | 51 + hw/i386/acpi-dsdt-mem-hotplug.dsl | 176 + hw/i386/acpi-dsdt.dsl | 98 +- hw/i386/acpi-dsdt.hex.generated | 3918 ++++------ hw/i386/intel_iommu.c | 1963 +++++ hw/i386/intel_iommu_internal.h | 389 + hw/i386/kvm/apic.c | 3 + hw/i386/kvm/clock.c | 68 +- hw/i386/kvm/i8254.c | 3 +- hw/i386/kvm/pci-assign.c | 299 +- hw/i386/kvmvapic.c | 79 +- hw/i386/pc.c | 563 ++- hw/i386/pc_piix.c | 304 +- hw/i386/pc_q35.c | 200 +- hw/i386/pc_sysfw.c | 15 +- hw/i386/q35-acpi-dsdt.dsl | 8 +- hw/i386/q35-acpi-dsdt.hex.generated | 876 ++- hw/i386/smbios.c | 803 ++- hw/i386/ssdt-mem.dsl | 77 + hw/i386/ssdt-mem.hex.generated | 213 + hw/i386/ssdt-misc.dsl | 3 + hw/i386/ssdt-misc.hex.generated | 31 +- hw/i386/ssdt-pcihp.hex.generated | 6 +- hw/i386/ssdt-proc.hex.generated | 6 +- hw/i386/ssdt-tpm.dsl | 43 + hw/i386/ssdt-tpm.hex.generated | 95 + hw/i386/xen/xen_platform.c | 8 +- hw/ide/ahci.c | 603 +- hw/ide/ahci.h | 38 +- hw/ide/atapi.c | 53 +- hw/ide/cmd646.c | 101 +- hw/ide/core.c | 515 +- hw/ide/ich.c | 11 +- hw/ide/internal.h | 67 +- hw/ide/isa.c | 5 +- hw/ide/macio.c | 125 +- hw/ide/microdrive.c | 10 +- hw/ide/mmio.c | 9 +- hw/ide/pci.c | 90 +- hw/ide/pci.h | 9 +- hw/ide/piix.c | 19 +- hw/ide/qdev.c | 73 +- hw/ide/via.c | 5 +- hw/input/adb.c | 6 +- hw/input/hid.c | 220 +- hw/input/lm832x.c | 3 +- hw/input/milkymist-softusb.c | 32 +- hw/input/pckbd.c | 61 +- hw/input/ps2.c | 178 +- hw/input/pxa2xx_keypad.c | 3 +- hw/input/stellaris_input.c | 6 +- hw/input/tsc210x.c | 30 - hw/input/vmmouse.c | 3 +- hw/intc/Makefile.objs | 1 + hw/intc/allwinner-a10-pic.c | 24 +- hw/intc/apic.c | 28 +- hw/intc/apic_common.c | 41 +- hw/intc/arm_gic.c | 27 +- hw/intc/arm_gic_common.c | 2 +- hw/intc/arm_gic_kvm.c | 6 +- hw/intc/armv7m_nvic.c | 18 +- hw/intc/exynos4210_combiner.c | 2 - hw/intc/exynos4210_gic.c | 1 - hw/intc/gic_internal.h | 2 +- hw/intc/heathrow_pic.c | 6 +- hw/intc/i8259.c | 7 +- hw/intc/i8259_common.c | 1 - hw/intc/imx_avic.c | 10 - hw/intc/ioapic_common.c | 1 - hw/intc/lm32_pic.c | 3 +- hw/intc/openpic.c | 106 +- hw/intc/openpic_kvm.c | 42 +- hw/intc/s390_flic.c | 325 +- hw/intc/s390_flic_kvm.c | 432 + hw/intc/slavio_intctl.c | 6 +- hw/intc/xics.c | 191 +- hw/intc/xics_kvm.c | 42 +- hw/intc/xilinx_intc.c | 20 +- hw/ipack/ipack.c | 5 +- hw/ipack/tpci200.c | 16 +- hw/isa/apm.c | 6 +- hw/isa/isa-bus.c | 13 +- hw/isa/lpc_ich9.c | 41 +- hw/isa/pc87312.c | 12 +- hw/isa/piix4.c | 3 +- hw/isa/vt82c686.c | 6 +- hw/lm32/lm32_boards.c | 36 +- hw/lm32/milkymist.c | 21 +- hw/m68k/an5206.c | 15 +- hw/m68k/dummy_m68k.c | 13 +- hw/m68k/mcf5208.c | 15 +- hw/mem/Makefile.objs | 1 + hw/mem/pc-dimm.c | 308 + hw/microblaze/boot.c | 17 +- hw/microblaze/petalogix_ml605_mmu.c | 24 +- hw/microblaze/petalogix_s3adsp1800_mmu.c | 20 +- hw/mips/addr.c | 7 +- hw/mips/cputimer.c | 18 +- hw/mips/gt64xxx_pci.c | 25 +- hw/mips/mips_fulong2e.c | 51 +- hw/mips/mips_int.c | 11 + hw/mips/mips_jazz.c | 22 +- hw/mips/mips_malta.c | 271 +- hw/mips/mips_mipssim.c | 20 +- hw/mips/mips_r4k.c | 25 +- hw/misc/Makefile.objs | 1 - hw/misc/eccmemctl.c | 3 +- hw/misc/exynos4210_pmu.c | 2 +- hw/misc/imx_ccm.c | 1 - hw/misc/ivshmem.c | 129 +- hw/misc/lm32_sys.c | 180 - hw/misc/macio/cuda.c | 29 +- hw/misc/macio/mac_dbdma.c | 12 +- hw/misc/macio/macio.c | 21 +- hw/misc/max111x.c | 3 +- hw/misc/milkymist-hpdmc.c | 3 +- hw/misc/milkymist-pfpu.c | 3 +- hw/misc/mst_fpga.c | 11 +- hw/misc/omap_gpmc.c | 8 +- hw/misc/pci-testdev.c | 2 - hw/misc/pvpanic.c | 13 +- hw/misc/slavio_misc.c | 3 +- hw/misc/tmp105.c | 9 +- hw/misc/vfio.c | 831 ++- hw/misc/zynq_slcr.c | 698 +- hw/moxie/moxiesim.c | 29 +- hw/net/allwinner_emac.c | 6 +- hw/net/cadence_gem.c | 50 +- hw/net/dp8393x.c | 3 - hw/net/e1000.c | 245 +- hw/net/e1000_regs.h | 9 + hw/net/eepro100.c | 23 +- hw/net/fsl_etsec/rings.c | 2 +- hw/net/lance.c | 15 +- hw/net/mcf_fec.c | 3 - hw/net/milkymist-minimac2.c | 8 +- hw/net/mipsnet.c | 3 +- hw/net/ne2000-isa.c | 48 +- hw/net/ne2000.c | 21 +- hw/net/pcnet-pci.c | 17 +- hw/net/pcnet.c | 61 +- hw/net/pcnet.h | 1 - hw/net/rtl8139.c | 27 +- hw/net/smc91c111.c | 2 +- hw/net/spapr_llan.c | 28 +- hw/net/stellaris_enet.c | 339 +- hw/net/vhost_net.c | 295 +- hw/net/virtio-net.c | 202 +- hw/net/vmxnet3.c | 52 +- hw/net/xgmac.c | 4 +- hw/net/xilinx_axienet.c | 21 +- hw/net/xilinx_ethlite.c | 37 +- hw/nvram/ds1225y.c | 1 - hw/nvram/eeprom93xx.c | 3 +- hw/nvram/fw_cfg.c | 61 +- hw/nvram/mac_nvram.c | 73 +- hw/nvram/spapr_nvram.c | 98 +- hw/openrisc/openrisc_sim.c | 12 +- hw/pci-bridge/ioh3420.c | 33 +- hw/pci-bridge/ioh3420.h | 4 - hw/pci-bridge/pci_bridge_dev.c | 4 +- hw/pci-bridge/xio3130_downstream.c | 12 +- hw/pci-bridge/xio3130_upstream.c | 1 - hw/pci-host/apb.c | 312 +- hw/pci-host/bonito.c | 3 +- hw/pci-host/pam.c | 4 +- hw/pci-host/piix.c | 37 +- hw/pci-host/ppce500.c | 50 +- hw/pci-host/prep.c | 7 +- hw/pci-host/q35.c | 67 +- hw/pci-host/uninorth.c | 2 +- hw/pci/msi.c | 2 +- hw/pci/msix.c | 6 +- hw/pci/pci-hotplug-old.c | 18 +- hw/pci/pci.c | 76 +- hw/pci/pci_bridge.c | 14 +- hw/pci/pcie.c | 85 +- hw/pci/pcie_aer.c | 6 +- hw/pci/pcie_host.c | 8 +- hw/pci/pcie_port.c | 2 +- hw/pci/shpc.c | 9 +- hw/pcmcia/pxa2xx.c | 21 - hw/ppc/Makefile.objs | 5 +- hw/ppc/e500.c | 401 +- hw/ppc/e500.h | 8 +- hw/ppc/e500plat.c | 11 +- hw/ppc/mac.h | 6 +- hw/ppc/mac_newworld.c | 80 +- hw/ppc/mac_oldworld.c | 51 +- hw/ppc/mpc8544ds.c | 4 +- hw/ppc/ppc.c | 79 + hw/ppc/ppc405_boards.c | 76 +- hw/ppc/ppc405_uc.c | 4 +- hw/ppc/ppc440_bamboo.c | 15 +- hw/ppc/ppc4xx_devs.c | 41 +- hw/ppc/ppc4xx_pci.c | 33 +- hw/ppc/prep.c | 40 +- hw/ppc/spapr.c | 633 ++- hw/ppc/spapr_events.c | 5 +- hw/ppc/spapr_hcall.c | 233 +- hw/ppc/spapr_iommu.c | 194 +- hw/ppc/spapr_pci.c | 419 +- hw/ppc/spapr_pci_vfio.c | 102 + hw/ppc/spapr_rtas.c | 115 +- hw/ppc/spapr_vio.c | 16 +- hw/ppc/virtex_ml507.c | 25 +- hw/s390x/css.c | 246 +- hw/s390x/css.h | 9 +- hw/s390x/event-facility.c | 7 +- hw/s390x/ipl.c | 2 +- hw/s390x/s390-virtio-bus.c | 87 +- hw/s390x/s390-virtio-bus.h | 1 - hw/s390x/s390-virtio-ccw.c | 107 +- hw/s390x/s390-virtio.c | 120 +- hw/s390x/s390-virtio.h | 3 + hw/s390x/sclp.c | 289 +- hw/s390x/sclpquiesce.c | 3 +- hw/s390x/virtio-ccw.c | 422 +- hw/s390x/virtio-ccw.h | 17 +- hw/scsi/Makefile.objs | 2 +- hw/scsi/esp-pci.c | 5 +- hw/scsi/esp.c | 15 +- hw/scsi/lsi53c895a.c | 14 +- hw/scsi/megasas.c | 659 ++- hw/scsi/mfi.h | 16 +- hw/scsi/scsi-bus.c | 302 +- hw/scsi/scsi-disk.c | 413 +- hw/scsi/scsi-generic.c | 126 +- hw/scsi/spapr_vscsi.c | 24 +- hw/scsi/vhost-scsi.c | 53 +- hw/scsi/virtio-scsi-dataplane.c | 312 + hw/scsi/virtio-scsi.c | 669 ++- hw/scsi/vmw_pvscsi.c | 32 +- hw/sd/milkymist-memcard.c | 10 +- hw/sd/omap_mmc.c | 8 +- hw/sd/pl181.c | 3 +- hw/sd/pxa2xx_mmci.c | 4 +- hw/sd/sd.c | 71 +- hw/sd/sdhci.c | 8 +- hw/sd/ssi-sd.c | 3 +- hw/sh4/r2d.c | 18 +- hw/sh4/shix.c | 12 +- hw/sparc/leon3.c | 12 +- hw/sparc/sun4m.c | 136 +- hw/sparc64/sun4u.c | 50 +- hw/ssi/pl022.c | 3 +- hw/ssi/ssi.c | 7 +- hw/ssi/xilinx_spi.c | 3 +- hw/ssi/xilinx_spips.c | 1 - hw/timer/allwinner-a10-pit.c | 67 +- hw/timer/arm_timer.c | 6 +- hw/timer/cadence_ttc.c | 19 +- hw/timer/digic-timer.c | 1 - hw/timer/ds1338.c | 1 - hw/timer/exynos4210_mct.c | 10 +- hw/timer/exynos4210_pwm.c | 2 - hw/timer/exynos4210_rtc.c | 1 - hw/timer/hpet.c | 9 +- hw/timer/i8254_common.c | 1 - hw/timer/imx_epit.c | 19 +- hw/timer/imx_gpt.c | 35 +- hw/timer/lm32_timer.c | 3 +- hw/timer/m48t59.c | 3 +- hw/timer/mc146818rtc.c | 101 +- hw/timer/milkymist-sysctl.c | 3 +- hw/timer/pxa2xx_timer.c | 3 - hw/timer/slavio_timer.c | 6 +- hw/timer/tusb6010.c | 3 - hw/timer/twl92230.c | 6 +- hw/timer/xilinx_timer.c | 22 +- hw/tpm/tpm_tis.c | 11 +- hw/tpm/tpm_tis.h | 8 +- hw/tricore/Makefile.objs | 1 + hw/tricore/tricore_testboard.c | 124 + hw/unicore32/puv3.c | 13 +- hw/usb/Makefile.objs | 5 + hw/usb/bus.c | 117 +- hw/usb/ccid-card-emulated.c | 29 +- hw/usb/core.c | 21 + hw/usb/desc-msos.c | 6 +- hw/usb/desc.c | 12 - hw/usb/desc.h | 1 + hw/usb/dev-audio.c | 7 +- hw/usb/dev-bluetooth.c | 6 +- hw/usb/dev-hid.c | 204 +- hw/usb/dev-hub.c | 13 +- hw/usb/dev-mtp.c | 1127 +++ hw/usb/dev-network.c | 20 +- hw/usb/dev-serial.c | 24 +- hw/usb/dev-smartcard-reader.c | 13 +- hw/usb/dev-storage.c | 127 +- hw/usb/dev-uas.c | 17 +- hw/usb/dev-wacom.c | 5 +- hw/usb/hcd-ehci-pci.c | 28 +- hw/usb/hcd-ehci-sysbus.c | 2 +- hw/usb/hcd-ehci.c | 120 +- hw/usb/hcd-ehci.h | 3 + hw/usb/hcd-musb.c | 8 +- hw/usb/hcd-ohci.c | 384 +- hw/usb/hcd-uhci.c | 79 +- hw/usb/hcd-xhci.c | 149 +- hw/usb/host-libusb.c | 198 +- hw/usb/redirect.c | 171 +- hw/virtio/Makefile.objs | 4 +- hw/virtio/dataplane/vring.c | 33 +- hw/virtio/vhost-backend.c | 69 + hw/virtio/vhost-user.c | 351 + hw/virtio/vhost.c | 111 +- hw/virtio/virtio-balloon.c | 90 +- hw/virtio/virtio-mmio.c | 23 +- hw/virtio/virtio-pci.c | 132 +- hw/virtio/virtio-pci.h | 6 +- hw/virtio/virtio-rng.c | 32 +- hw/virtio/virtio.c | 247 +- hw/watchdog/watchdog.c | 31 +- hw/watchdog/wdt_i6300esb.c | 22 +- hw/watchdog/wdt_ib700.c | 10 +- hw/xen/xen_backend.c | 1 - hw/xen/xen_devconfig.c | 1 + hw/xen/xen_pt.c | 20 - hw/xen/xen_pt_msi.c | 2 - hw/xenpv/xen_machine_pv.c | 10 +- hw/xtensa/Makefile.objs | 4 +- hw/xtensa/bootparam.h | 49 + hw/xtensa/pic_cpu.c | 4 +- hw/xtensa/sim.c | 120 + hw/xtensa/xtensa_bootparam.h | 25 - hw/xtensa/xtensa_lx60.c | 360 - hw/xtensa/xtensa_sim.c | 118 - hw/xtensa/xtfpga.c | 448 ++ include/block/accounting.h | 57 + include/block/aio.h | 76 +- include/block/block.h | 227 +- include/block/block_int.h | 176 +- include/block/blockjob.h | 67 +- include/block/coroutine.h | 21 +- include/block/nbd.h | 12 + include/block/qapi.h | 4 - include/block/scsi.h | 2 + include/block/thread-pool.h | 10 +- include/elf.h | 45 +- include/exec/cpu-all.h | 141 +- include/exec/cpu-common.h | 9 + include/exec/cpu-defs.h | 9 +- include/exec/cpu_ldst.h | 400 + include/exec/cpu_ldst_template.h | 193 + include/exec/def-helper.h | 274 - include/exec/exec-all.h | 46 +- include/exec/helper-gen.h | 72 + include/exec/helper-head.h | 134 + include/exec/helper-proto.h | 40 + include/exec/helper-tcg.h | 49 + include/exec/memory.h | 114 +- include/exec/ram_addr.h | 47 +- include/exec/softmmu_exec.h | 164 - include/exec/softmmu_header.h | 213 - include/exec/softmmu_template.h | 525 -- include/fpu/softfloat.h | 4 + include/glib-compat.h | 174 + include/hw/acpi/acpi.h | 5 + include/hw/acpi/acpi_dev_interface.h | 43 + include/hw/acpi/cpu_hotplug.h | 9 +- include/hw/acpi/cpu_hotplug_defs.h | 32 - include/hw/acpi/ich9.h | 8 +- include/hw/acpi/memory_hotplug.h | 38 + include/hw/acpi/pc-hotplug.h | 56 + include/hw/acpi/tpm.h | 29 + include/hw/arm/arm.h | 2 +- include/hw/arm/omap.h | 4 +- include/hw/arm/pxa.h | 2 +- include/hw/block/block.h | 13 +- include/hw/block/flash.h | 6 +- include/hw/boards.h | 81 +- include/hw/compat.h | 35 + include/hw/elf_ops.h | 15 +- include/hw/hotplug.h | 16 +- include/hw/i2c/smbus.h | 18 +- include/hw/i386/apic_internal.h | 1 + include/hw/i386/ich9.h | 2 +- include/hw/i386/intel_iommu.h | 120 + include/hw/i386/pc.h | 158 +- include/hw/i386/smbios.h | 112 +- include/hw/input/hid.h | 4 +- include/hw/irq.h | 5 +- include/hw/isa/pc87312.h | 3 - include/hw/loader.h | 8 +- include/hw/mem/pc-dimm.h | 81 + include/hw/mips/cpudevs.h | 2 + include/hw/misc/vfio.h | 9 + include/hw/net/allwinner_emac.h | 1 + include/hw/nmi.h | 49 + include/hw/nvram/fw_cfg.h | 2 + include/hw/pci-host/pam.h | 2 +- include/hw/pci-host/q35.h | 2 + include/hw/pci-host/spapr.h | 56 +- include/hw/pci/pci.h | 7 + include/hw/pci/pci_ids.h | 1 + include/hw/pci/pcie.h | 13 +- include/hw/pci/pcie_host.h | 1 - include/hw/pci/pcie_regs.h | 2 + include/hw/pci/shpc.h | 4 +- include/hw/pcmcia.h | 6 - include/hw/platform-bus.h | 57 + include/hw/ppc/mac_dbdma.h | 5 + include/hw/ppc/ppc.h | 2 + include/hw/ppc/spapr.h | 106 +- include/hw/ppc/xics.h | 11 +- include/hw/qdev-core.h | 59 +- include/hw/qdev-properties.h | 14 +- include/hw/s390x/adapter.h | 23 + include/hw/s390x/s390_flic.h | 65 +- include/hw/s390x/sclp.h | 22 +- include/hw/scsi/esp.h | 1 + include/hw/scsi/scsi.h | 51 +- include/hw/sd.h | 2 +- include/hw/ssi.h | 2 + include/hw/sysbus.h | 19 +- include/hw/timer/allwinner-a10-pit.h | 13 +- include/hw/tricore/tricore.h | 11 + include/hw/usb.h | 20 +- include/hw/usb/ehci-regs.h | 82 + include/hw/usb/uhci-regs.h | 40 + include/hw/virtio/dataplane/vring.h | 5 +- include/hw/virtio/vhost-backend.h | 40 + include/hw/virtio/vhost.h | 14 +- include/hw/virtio/virtio-access.h | 170 + include/hw/virtio/virtio-blk.h | 57 +- include/hw/virtio/virtio-net.h | 18 +- include/hw/virtio/virtio-scsi.h | 98 +- include/hw/virtio/virtio-serial.h | 2 + include/hw/virtio/virtio.h | 20 +- include/hw/virtio/virtio_ring.h | 167 + include/hw/xen/xen.h | 1 - include/hw/xen/xen_common.h | 15 + include/libdecnumber/dconfig.h | 40 + include/libdecnumber/decContext.h | 257 + include/libdecnumber/decDPD.h | 1214 +++ include/libdecnumber/decNumber.h | 202 + include/libdecnumber/decNumberLocal.h | 665 ++ include/libdecnumber/dpd/decimal128.h | 100 + include/libdecnumber/dpd/decimal128Local.h | 47 + include/libdecnumber/dpd/decimal32.h | 98 + include/libdecnumber/dpd/decimal64.h | 100 + include/migration/migration.h | 4 +- include/migration/qemu-file.h | 32 + include/migration/vmstate.h | 36 +- include/monitor/monitor.h | 48 +- include/net/net.h | 6 +- include/net/vhost-user.h | 17 + include/net/vhost_net.h | 11 +- include/qapi/error.h | 31 +- include/qapi/qmp-event.h | 27 + include/qapi/qmp/dispatch.h | 2 +- include/qapi/qmp/qdict.h | 3 + include/qapi/qmp/qerror.h | 91 - include/qapi/util.h | 17 + include/qapi/visitor-impl.h | 10 +- include/qapi/visitor.h | 7 +- include/qemu-common.h | 34 +- include/qemu/aes.h | 23 + include/qemu/bitmap.h | 19 +- include/qemu/bitops.h | 16 +- include/qemu/bswap.h | 45 +- include/qemu/cache-utils.h | 44 - include/qemu/compiler.h | 6 + include/qemu/config-file.h | 2 + include/qemu/error-report.h | 2 +- include/qemu/int128.h | 9 +- include/qemu/main-loop.h | 2 +- include/qemu/option.h | 53 +- include/qemu/option_int.h | 4 +- include/qemu/osdep.h | 42 +- include/qemu/range.h | 72 + include/qemu/sockets.h | 5 +- include/qemu/throttle.h | 10 + include/qemu/timer.h | 2 + include/qemu/typedefs.h | 5 + include/qom/cpu.h | 36 +- include/qom/object.h | 96 +- include/sysemu/accel.h | 62 + include/sysemu/arch_init.h | 35 +- include/sysemu/balloon.h | 2 - include/sysemu/block-backend.h | 142 + include/sysemu/blockdev.h | 22 +- include/sysemu/char.h | 77 +- include/sysemu/cpus.h | 2 +- include/sysemu/dma.h | 31 +- include/sysemu/dump-arch.h | 28 + include/sysemu/dump.h | 53 +- include/sysemu/hostmem.h | 68 + include/sysemu/kvm.h | 80 +- include/sysemu/os-posix.h | 2 + include/sysemu/os-win32.h | 2 + include/sysemu/qtest.h | 1 - include/sysemu/sysemu.h | 38 +- include/sysemu/tpm.h | 7 + include/trace-tcg.h | 7 + include/trace.h | 1 + include/ui/console.h | 36 +- include/ui/input.h | 10 + include/ui/qemu-pixman.h | 4 + include/ui/spice-display.h | 14 + iohandler.c | 1 + ioport.c | 11 +- iothread.c | 16 +- kvm-all.c | 222 +- kvm-stub.c | 16 +- libcacard/Makefile | 11 +- libcacard/cac.c | 62 +- libcacard/card_7816.c | 28 +- libcacard/event.c | 25 +- libcacard/vcard.c | 43 +- libcacard/vcard_emul.h | 1 + libcacard/vcard_emul_nss.c | 66 +- libcacard/vreader.c | 59 +- libcacard/vscclient.c | 90 +- libdecnumber/decContext.c | 433 ++ libdecnumber/decNumber.c | 8195 ++++++++++++++++++++ libdecnumber/dpd/decimal128.c | 564 ++ libdecnumber/dpd/decimal128Local.h | 42 + libdecnumber/dpd/decimal32.c | 489 ++ libdecnumber/dpd/decimal64.c | 850 ++ linux-headers/asm-arm/kvm.h | 12 +- linux-headers/asm-arm64/kvm.h | 15 +- linux-headers/asm-mips/kvm.h | 35 + linux-headers/asm-mips/kvm_para.h | 6 +- linux-headers/asm-powerpc/kvm.h | 10 +- linux-headers/asm-powerpc/kvm_para.h | 6 + linux-headers/asm-s390/kvm.h | 62 + linux-headers/asm-x86/kvm.h | 3 + linux-headers/linux/kvm.h | 75 +- linux-headers/linux/kvm_para.h | 3 + linux-headers/linux/psci.h | 90 + linux-headers/linux/vfio.h | 43 + linux-user/Makefile.objs | 2 +- linux-user/aarch64/syscall.h | 3 + linux-user/alpha/syscall.h | 3 + linux-user/arm/syscall.h | 5 + linux-user/arm/syscall_nr.h | 2 +- linux-user/cpu-uname.c | 72 - linux-user/cpu-uname.h | 1 - linux-user/cris/syscall.h | 3 + linux-user/elfload.c | 126 +- linux-user/i386/syscall.h | 3 + linux-user/ioctls.h | 5 +- linux-user/m68k/syscall.h | 4 + linux-user/main.c | 113 +- linux-user/microblaze/syscall.h | 3 + linux-user/mips/syscall.h | 3 + linux-user/mips/target_cpu.h | 2 +- linux-user/mips64/syscall.h | 3 + linux-user/openrisc/syscall.h | 4 + linux-user/ppc/syscall.h | 8 + linux-user/ppc/target_cpu.h | 10 + linux-user/qemu.h | 13 +- linux-user/s390x/syscall.h | 3 + linux-user/sh4/syscall.h | 4 + linux-user/signal.c | 1421 ++-- linux-user/socket.h | 5 + linux-user/sparc/syscall.h | 3 + linux-user/sparc64/syscall.h | 3 + linux-user/strace.list | 15 + linux-user/syscall.c | 819 ++- linux-user/syscall_defs.h | 38 +- linux-user/syscall_types.h | 2 +- linux-user/uname.c | 169 + linux-user/uname.h | 10 + linux-user/unicore32/syscall.h | 4 + linux-user/x86_64/syscall.h | 3 + main-loop.c | 35 +- memory.c | 414 +- memory_mapping.c | 3 +- migration-rdma.c | 5 +- migration-tcp.c | 21 +- migration-unix.c | 21 +- migration.c | 16 +- monitor.c | 798 ++- nbd.c | 323 +- net/Makefile.objs | 3 +- net/clients.h | 5 + net/hub.c | 1 + net/l2tpv3.c | 756 ++ net/net.c | 107 +- net/queue.c | 3 + net/slirp.c | 22 +- net/socket.c | 13 +- net/tap.c | 36 +- net/tap_int.h | 3 - net/vhost-user.c | 258 + numa.c | 436 ++ os-posix.c | 107 +- os-win32.c | 5 - page_cache.c | 1 + pc-bios/QEMU,tcx.bin | Bin 1410 -> 1402 bytes pc-bios/README | 7 +- pc-bios/bios-256k.bin | Bin 262144 -> 262144 bytes pc-bios/bios.bin | Bin 131072 -> 131072 bytes pc-bios/efi-e1000.rom | Bin 173568 -> 194560 bytes pc-bios/efi-eepro100.rom | Bin 174592 -> 196096 bytes pc-bios/efi-ne2k_pci.rom | Bin 173056 -> 194560 bytes pc-bios/efi-pcnet.rom | Bin 173056 -> 194560 bytes pc-bios/efi-rtl8139.rom | Bin 176640 -> 198144 bytes pc-bios/efi-virtio.rom | Bin 171008 -> 192000 bytes pc-bios/linuxboot.bin | Bin 1024 -> 1024 bytes pc-bios/openbios-ppc | Bin 734008 -> 746588 bytes pc-bios/openbios-sparc32 | Bin 381512 -> 381512 bytes pc-bios/openbios-sparc64 | Bin 1598376 -> 1616768 bytes pc-bios/optionrom/linuxboot.S | 47 +- pc-bios/optionrom/optionrom.h | 21 +- pc-bios/petalogix-s3adsp1800.dtb | Bin 8259 -> 8259 bytes pc-bios/ppc_rom.bin | Bin 1048576 -> 1048576 bytes pc-bios/qemu_logo.svg | 1010 +++ pc-bios/s390-ccw.img | Bin 9336 -> 17752 bytes pc-bios/s390-ccw/bootmap.c | 536 +- pc-bios/s390-ccw/bootmap.h | 344 + pc-bios/s390-ccw/main.c | 30 +- pc-bios/s390-ccw/s390-ccw.h | 39 +- pc-bios/s390-ccw/sclp-ascii.c | 4 +- pc-bios/s390-ccw/virtio.c | 148 +- pc-bios/s390-ccw/virtio.h | 50 +- pc-bios/slof.bin | Bin 921720 -> 923896 bytes pc-bios/u-boot.e500 | Bin 0 -> 330260 bytes pc-bios/vgabios-cirrus.bin | Bin 37376 -> 37376 bytes pc-bios/vgabios-qxl.bin | Bin 37376 -> 37376 bytes pc-bios/vgabios-stdvga.bin | Bin 37376 -> 37376 bytes pc-bios/vgabios-vmware.bin | Bin 37376 -> 37376 bytes pc-bios/vgabios.bin | Bin 37376 -> 37376 bytes pixman | 2 +- po/Makefile | 13 +- po/de_DE.po | 55 +- po/fr_FR.po | 56 +- po/hu.po | 2 +- po/it.po | 65 +- po/tr.po | 2 +- po/zh_CN.po | 86 + qapi-schema.json | 2127 ++---- qapi/Makefile.objs | 3 +- qapi/block-core.json | 1828 +++++ qapi/block.json | 180 + qapi/common.json | 104 + qapi/event.json | 332 + qapi/opts-visitor.c | 26 +- qapi/qapi-dealloc-visitor.c | 26 + qapi/qapi-util.c | 34 + qapi/qapi-visit-core.c | 266 +- qapi/qmp-dispatch.c | 27 +- qapi/qmp-event.c | 74 + qapi/qmp-input-visitor.c | 8 +- qapi/qmp-output-visitor.c | 6 + qapi/string-input-visitor.c | 207 +- qapi/string-output-visitor.c | 235 +- qapi/trace.json | 65 + qdev-monitor.c | 165 +- qemu-bridge-helper.c | 9 +- qemu-char.c | 1166 ++- qemu-coroutine-io.c | 4 +- qemu-coroutine-sleep.c | 12 - qemu-coroutine.c | 26 +- qemu-doc.texi | 61 +- qemu-file-stdio.c | 194 + qemu-file-unix.c | 223 + qemu-file.c | 896 ++- qemu-img-cmds.hx | 24 +- qemu-img.c | 786 ++- qemu-img.texi | 93 +- qemu-io-cmds.c | 30 +- qemu-io.c | 70 +- qemu-nbd.c | 127 +- qemu-nbd.texi | 2 +- qemu-options.hx | 308 +- qemu-seccomp.c | 12 +- qemu-timer.c | 14 +- qga/channel-posix.c | 2 +- qga/commands-posix.c | 724 ++- qga/commands-win32.c | 170 +- qga/commands.c | 4 +- qga/guest-agent-core.h | 1 + qga/main.c | 8 +- qga/qapi-schema.json | 110 +- qga/vss-win32.c | 6 +- qga/vss-win32.h | 2 +- qmp-commands.hx | 331 +- qmp.c | 220 +- qobject/json-lexer.c | 4 +- qobject/json-parser.c | 17 +- qobject/qdict.c | 32 + qom/cpu.c | 29 +- qom/object.c | 290 +- qtest.c | 79 +- roms/Makefile | 9 + roms/SLOF | 2 +- roms/config.ipxe.general.h | 4 +- roms/ipxe | 2 +- roms/openbios | 2 +- roms/openhackware | 2 +- roms/seabios | 2 +- roms/u-boot | 1 + rules.mak | 293 +- savevm.c | 166 +- scripts/acpi_extract.py | 23 +- scripts/checkpatch.pl | 8 +- scripts/cleanup-trace-events.pl | 2 +- scripts/coverity-model.c | 183 + scripts/get_maintainer.pl | 28 +- scripts/kvm/kvm_stat | 210 +- scripts/kvm/vmxcap | 10 +- scripts/qapi-commands.py | 108 +- scripts/qapi-event.py | 368 + scripts/qapi-types.py | 11 +- scripts/qapi-visit.py | 270 +- scripts/qapi.py | 114 +- scripts/qtest | 5 - scripts/simpletrace.py | 64 +- scripts/tracetool.py | 43 +- scripts/tracetool/__init__.py | 176 +- scripts/tracetool/backend/__init__.py | 76 +- scripts/tracetool/backend/dtrace.py | 81 +- scripts/tracetool/backend/events.py | 23 - scripts/tracetool/backend/ftrace.py | 56 +- scripts/tracetool/backend/simple.py | 132 +- scripts/tracetool/backend/stderr.py | 43 +- scripts/tracetool/backend/ust.py | 65 +- scripts/tracetool/format/__init__.py | 50 +- scripts/tracetool/format/c.py | 16 +- scripts/tracetool/format/d.py | 30 +- scripts/tracetool/format/events_c.py | 15 +- scripts/tracetool/format/events_h.py | 20 +- scripts/tracetool/format/h.py | 30 +- scripts/tracetool/format/simpletrace_stap.py | 71 + scripts/tracetool/format/stap.py | 47 +- scripts/tracetool/format/tcg_h.py | 57 + scripts/tracetool/format/tcg_helper_c.py | 50 + scripts/tracetool/format/tcg_helper_h.py | 50 + scripts/tracetool/format/tcg_helper_wrapper_h.py | 70 + scripts/tracetool/format/ust_events_c.py | 7 +- scripts/tracetool/format/ust_events_h.py | 49 +- scripts/tracetool/transform.py | 166 + scripts/update-linux-headers.sh | 3 +- scripts/vmstate-static-checker.py | 422 + slirp/arp_table.c | 10 +- slirp/misc.c | 33 +- slirp/misc.h | 4 - slirp/slirp.c | 15 +- slirp/slirp.h | 2 - slirp/slirp_config.h | 3 - slirp/tftp.h | 2 +- slirp/udp.c | 2 +- softmmu_template.h | 574 ++ spice-qemu-char.c | 10 +- stubs/Makefile.objs | 14 +- stubs/arch-query-cpu-def.c | 2 +- stubs/bdrv-commit-all.c | 7 + stubs/chr-baum-init.c | 7 + stubs/chr-msmouse.c | 7 + stubs/chr-testdev.c | 7 + stubs/dump.c | 2 +- stubs/fdset-remove-fd.c | 3 +- stubs/get-next-serial.c | 3 + stubs/is-daemonized.c | 9 + stubs/machine-init-done.c | 6 + stubs/mon-print-filename.c | 6 - stubs/mon-protocol-event.c | 6 - stubs/monitor-init.c | 6 + stubs/notify-event.c | 6 + stubs/qemu-chr-open-spice.c | 14 + stubs/qmp_pc_dimm_device_list.c | 7 + stubs/vc-init.c | 7 + stubs/vm-stop.c | 7 +- target-alpha/cpu-qom.h | 3 + target-alpha/cpu.c | 2 + target-alpha/cpu.h | 1 + target-alpha/fpu_helper.c | 9 +- target-alpha/helper.c | 46 +- target-alpha/helper.h | 5 +- target-alpha/int_helper.c | 2 +- target-alpha/machine.c | 2 - target-alpha/mem_helper.c | 29 +- target-alpha/sys_helper.c | 2 +- target-alpha/translate.c | 2372 +++---- target-arm/Makefile.objs | 1 + target-arm/arm_ldst.h | 48 + target-arm/cpu-qom.h | 32 +- target-arm/cpu.c | 235 +- target-arm/cpu.h | 499 +- target-arm/cpu64.c | 135 +- target-arm/crypto_helper.c | 338 +- target-arm/gdbstub64.c | 2 - target-arm/helper-a64.c | 153 +- target-arm/helper-a64.h | 4 +- target-arm/helper.c | 1991 ++++- target-arm/helper.h | 28 +- target-arm/internals.h | 381 + target-arm/iwmmxt_helper.c | 11 +- target-arm/kvm-consts.h | 89 +- target-arm/kvm.c | 11 + target-arm/kvm32.c | 58 +- target-arm/kvm64.c | 92 +- target-arm/kvm_arm.h | 20 + target-arm/machine.c | 27 +- target-arm/neon_helper.c | 32 +- target-arm/op_helper.c | 461 ++- target-arm/psci.c | 242 + target-arm/translate-a64.c | 817 ++- target-arm/translate.c | 1084 ++- target-arm/translate.h | 46 +- target-cris/cpu-qom.h | 1 + target-cris/cpu.c | 2 + target-cris/helper.c | 32 + target-cris/helper.h | 4 - target-cris/op_helper.c | 19 +- target-cris/translate.c | 57 +- target-cris/translate_v10.c | 2 +- target-i386/cc_helper.c | 2 +- target-i386/cpu-qom.h | 12 +- target-i386/cpu.c | 785 ++- target-i386/cpu.h | 188 +- target-i386/excp_helper.c | 2 +- target-i386/fpu_helper.c | 28 +- target-i386/gdbstub.c | 6 +- target-i386/helper.c | 437 +- target-i386/helper.h | 4 - target-i386/int_helper.c | 2 +- target-i386/kvm.c | 207 +- target-i386/kvm_i386.h | 2 + target-i386/machine.c | 158 +- target-i386/mem_helper.c | 25 +- target-i386/misc_helper.c | 49 +- target-i386/ops_sse.h | 32 +- target-i386/seg_helper.c | 257 +- target-i386/smm_helper.c | 52 +- target-i386/svm_helper.c | 20 +- target-i386/translate.c | 60 +- target-lm32/Makefile.objs | 1 + target-lm32/README | 15 +- target-lm32/cpu-qom.h | 1 + target-lm32/cpu.c | 4 +- target-lm32/cpu.h | 3 +- target-lm32/helper.c | 32 +- target-lm32/helper.h | 4 - target-lm32/lm32-semi.c | 215 + target-lm32/machine.c | 6 +- target-lm32/op_helper.c | 16 +- target-lm32/translate.c | 9 +- target-m68k/cpu-qom.h | 4 + target-m68k/cpu.c | 4 + target-m68k/cpu.h | 1 - target-m68k/helper.c | 22 +- target-m68k/helper.h | 4 - target-m68k/op_helper.c | 41 +- target-m68k/translate.c | 9 +- target-microblaze/cpu-qom.h | 1 + target-microblaze/cpu.c | 3 + target-microblaze/helper.c | 16 + target-microblaze/helper.h | 4 - target-microblaze/op_helper.c | 14 +- target-microblaze/translate.c | 21 +- target-mips/Makefile.objs | 3 +- target-mips/cpu-qom.h | 3 + target-mips/cpu.c | 11 + target-mips/cpu.h | 155 +- target-mips/dsp_helper.c | 28 +- target-mips/gdbstub.c | 7 - target-mips/helper.c | 182 +- target-mips/helper.h | 247 +- target-mips/kvm.c | 690 ++ target-mips/kvm_mips.h | 26 + target-mips/lmi_helper.c | 2 +- target-mips/machine.c | 42 +- target-mips/mips-defs.h | 29 +- target-mips/msa_helper.c | 3436 ++++++++ target-mips/op_helper.c | 564 ++- target-mips/translate.c | 6289 ++++++++++++---- target-mips/translate_init.c | 85 +- target-moxie/helper.c | 18 +- target-moxie/helper.h | 4 - target-moxie/machine.c | 3 +- target-moxie/translate.c | 6 +- target-openrisc/cpu.c | 1 + target-openrisc/cpu.h | 1 + target-openrisc/exception_helper.c | 2 +- target-openrisc/fpu_helper.c | 2 +- target-openrisc/helper.h | 4 - target-openrisc/int_helper.c | 2 +- target-openrisc/interrupt.c | 20 + target-openrisc/interrupt_helper.c | 2 +- target-openrisc/machine.c | 2 - target-openrisc/mmu_helper.c | 15 +- target-openrisc/sys_helper.c | 2 +- target-openrisc/translate.c | 13 +- target-ppc/Makefile.objs | 1 + target-ppc/arch_dump.c | 107 +- target-ppc/cpu-models.c | 55 +- target-ppc/cpu-models.h | 23 +- target-ppc/cpu-qom.h | 28 +- target-ppc/cpu.h | 173 +- target-ppc/dfp_helper.c | 1316 ++++ target-ppc/excp_helper.c | 42 +- target-ppc/fpu_helper.c | 11 +- target-ppc/gdbstub.c | 251 +- target-ppc/helper.h | 64 +- target-ppc/int_helper.c | 341 +- target-ppc/kvm.c | 535 ++- target-ppc/kvm_ppc.h | 42 +- target-ppc/machine.c | 79 +- target-ppc/mem_helper.c | 33 +- target-ppc/misc_helper.c | 41 +- target-ppc/mmu-hash32.c | 2 +- target-ppc/mmu-hash64.c | 2 +- target-ppc/mmu_helper.c | 32 +- target-ppc/timebase_helper.c | 2 +- target-ppc/translate.c | 1629 ++-- target-ppc/translate_init.c | 2203 ++++-- target-s390x/Makefile.objs | 2 +- target-s390x/cc_helper.c | 2 +- target-s390x/cpu-qom.h | 7 + target-s390x/cpu.c | 127 +- target-s390x/cpu.h | 172 +- target-s390x/fpu_helper.c | 7 +- target-s390x/gdbstub.c | 109 +- target-s390x/helper.c | 133 +- target-s390x/helper.h | 4 - target-s390x/insn-data.def | 6 +- target-s390x/int_helper.c | 2 +- target-s390x/interrupt.c | 56 +- target-s390x/ioinst.h | 10 + target-s390x/kvm.c | 610 ++- target-s390x/machine.c | 76 + target-s390x/mem_helper.c | 18 +- target-s390x/misc_helper.c | 55 +- target-s390x/translate.c | 25 +- target-sh4/cpu-qom.h | 1 + target-sh4/cpu.c | 1 + target-sh4/helper.c | 9 + target-sh4/helper.h | 4 - target-sh4/op_helper.c | 18 +- target-sh4/translate.c | 9 +- target-sparc/cc_helper.c | 2 +- target-sparc/cpu-qom.h | 3 + target-sparc/cpu.c | 22 + target-sparc/cpu.h | 2 + target-sparc/fop_helper.c | 2 +- target-sparc/helper.c | 2 +- target-sparc/helper.h | 4 - target-sparc/int64_helper.c | 2 +- target-sparc/ldst_helper.c | 49 +- target-sparc/translate.c | 9 +- target-sparc/vis_helper.c | 2 +- target-sparc/win_helper.c | 2 +- target-tricore/Makefile.objs | 1 + target-tricore/cpu-qom.h | 70 + target-tricore/cpu.c | 191 + target-tricore/cpu.h | 403 + target-tricore/helper.c | 140 + target-tricore/helper.h | 32 + target-tricore/op_helper.c | 468 ++ target-tricore/translate.c | 2568 ++++++ target-tricore/tricore-defs.h | 28 + target-tricore/tricore-opcodes.h | 1408 ++++ target-unicore32/cpu-qom.h | 1 + target-unicore32/cpu.c | 1 + target-unicore32/helper.c | 17 +- target-unicore32/helper.h | 3 - target-unicore32/op_helper.c | 19 +- target-unicore32/translate.c | 37 +- target-unicore32/ucf64_helper.c | 24 +- target-xtensa/core-dc232b.c | 2 +- target-xtensa/core-dc233c.c | 2 +- target-xtensa/core-fsf.c | 2 +- target-xtensa/cpu-qom.h | 3 + target-xtensa/cpu.c | 5 +- target-xtensa/cpu.h | 10 +- target-xtensa/helper.c | 15 +- target-xtensa/helper.h | 4 - target-xtensa/import_core.sh | 53 + target-xtensa/op_helper.c | 36 +- target-xtensa/overlay_tool.h | 32 +- target-xtensa/translate.c | 9 +- target-xtensa/xtensa-semi.c | 2 +- tcg-runtime.c | 40 +- tcg/README | 23 +- tcg/aarch64/tcg-target.c | 1279 ++-- tcg/aarch64/tcg-target.h | 37 +- tcg/arm/tcg-target.c | 204 +- tcg/arm/tcg-target.h | 5 +- tcg/i386/tcg-target.c | 128 +- tcg/i386/tcg-target.h | 5 +- tcg/ia64/tcg-target.c | 721 +- tcg/ia64/tcg-target.h | 9 +- tcg/mips/tcg-target.c | 1950 +++--- tcg/mips/tcg-target.h | 20 +- tcg/optimize.c | 380 +- tcg/ppc/tcg-target.c | 3257 +++++--- tcg/ppc/tcg-target.h | 117 +- tcg/ppc64/tcg-target.c | 2210 ------ tcg/ppc64/tcg-target.h | 132 - tcg/s390/tcg-target.c | 889 ++- tcg/s390/tcg-target.h | 5 +- tcg/sparc/tcg-target.c | 1114 ++-- tcg/sparc/tcg-target.h | 34 +- tcg/tcg-be-ldst.h | 9 +- tcg/tcg-op.h | 283 +- tcg/tcg-opc.h | 124 +- tcg/tcg-runtime.h | 30 +- tcg/tcg.c | 565 +- tcg/tcg.h | 200 +- tcg/tci/tcg-target.c | 131 +- tcg/tci/tcg-target.h | 12 +- tci.c | 343 +- tests/.gitignore | 15 +- tests/Makefile | 136 +- tests/ac97-test.c | 33 + tests/acpi-test-data/pc/DSDT | Bin 4480 -> 3592 bytes tests/acpi-test-data/pc/SSDT | Bin 2269 -> 2279 bytes tests/acpi-test-data/q35/DSDT | Bin 7378 -> 8182 bytes tests/acpi-test-data/q35/SSDT | Bin 550 -> 560 bytes tests/acpi-test-data/rebuild-expected-aml.sh | 6 +- tests/acpi-test.c | 674 -- tests/ahci-test.c | 1561 ++++ tests/bios-tables-test.c | 807 ++ tests/blockdev-test.c | 59 - tests/check-qdict.c | 87 + tests/check-qjson.c | 7 + tests/display-vga-test.c | 52 + tests/drive_del-test.c | 137 + tests/e1000-test.c | 33 +- tests/es1370-test.c | 33 + tests/fdc-test.c | 4 +- tests/ide-test.c | 101 +- tests/image-fuzzer/qcow2/__init__.py | 1 + tests/image-fuzzer/qcow2/fuzz.py | 367 + tests/image-fuzzer/qcow2/layout.py | 612 ++ tests/image-fuzzer/runner.py | 437 ++ tests/intel-hda-test.c | 45 + tests/ioh3420-test.c | 34 + tests/libqos/malloc-pc.c | 283 +- tests/libqos/malloc-pc.h | 9 + tests/libqos/malloc.h | 2 +- tests/libqos/pci-pc.c | 73 +- tests/libqos/pci-pc.h | 1 + tests/libqos/pci.c | 123 +- tests/libqos/pci.h | 17 +- tests/libqos/usb.c | 71 + tests/libqos/usb.h | 17 + tests/libqos/virtio-pci.c | 343 + tests/libqos/virtio-pci.h | 61 + tests/libqos/virtio.c | 281 + tests/libqos/virtio.h | 187 + tests/libqtest.c | 128 +- tests/libqtest.h | 32 + tests/qapi-schema/duplicate-key.err | 2 +- tests/qapi-schema/event-nest-struct.err | 1 + tests/qapi-schema/event-nest-struct.exit | 1 + tests/qapi-schema/event-nest-struct.json | 2 + .../qapi-schema/flat-union-invalid-branch-key.err | 2 +- .../flat-union-invalid-discriminator.err | 2 +- tests/qapi-schema/flat-union-no-base.err | 2 +- .../flat-union-string-discriminator.err | 2 +- tests/qapi-schema/funny-char.err | 2 +- tests/qapi-schema/include-before-err.err | 1 + tests/qapi-schema/include-before-err.exit | 1 + tests/qapi-schema/include-before-err.json | 2 + tests/qapi-schema/include-cycle-b.json | 1 + tests/qapi-schema/include-cycle-c.json | 1 + tests/qapi-schema/include-cycle.err | 3 + tests/qapi-schema/include-cycle.exit | 1 + tests/qapi-schema/include-cycle.json | 1 + tests/qapi-schema/include-format-err.err | 1 + tests/qapi-schema/include-format-err.exit | 1 + tests/qapi-schema/include-format-err.json | 2 + tests/qapi-schema/include-nested-err.err | 2 + tests/qapi-schema/include-nested-err.exit | 1 + tests/qapi-schema/include-nested-err.json | 1 + tests/qapi-schema/include-no-file.err | 1 + tests/qapi-schema/include-no-file.exit | 1 + tests/qapi-schema/include-no-file.json | 1 + tests/qapi-schema/include-non-file.err | 1 + tests/qapi-schema/include-non-file.exit | 1 + tests/qapi-schema/include-non-file.json | 1 + tests/qapi-schema/include-relpath-sub.json | 2 + tests/qapi-schema/include-relpath.exit | 1 + tests/qapi-schema/include-relpath.json | 1 + tests/qapi-schema/include-relpath.out | 3 + tests/qapi-schema/include-repetition-sub.json | 2 + tests/qapi-schema/include-repetition.exit | 1 + tests/qapi-schema/include-repetition.json | 3 + tests/qapi-schema/include-repetition.out | 3 + tests/qapi-schema/include-self-cycle.err | 1 + tests/qapi-schema/include-self-cycle.exit | 1 + tests/qapi-schema/include-self-cycle.json | 1 + tests/qapi-schema/include-simple-sub.json | 2 + tests/qapi-schema/include-simple.exit | 1 + tests/qapi-schema/include-simple.json | 1 + tests/qapi-schema/include-simple.out | 3 + tests/qapi-schema/include/relpath.json | 1 + tests/qapi-schema/missing-colon.err | 2 +- tests/qapi-schema/missing-comma-list.err | 2 +- tests/qapi-schema/missing-comma-object.err | 2 +- tests/qapi-schema/non-objects.err | 2 +- tests/qapi-schema/qapi-schema-test.json | 22 + tests/qapi-schema/qapi-schema-test.out | 13 +- tests/qapi-schema/quoted-structural-chars.err | 2 +- tests/qapi-schema/test-qapi.py | 6 +- tests/qapi-schema/trailing-comma-list.err | 2 +- tests/qapi-schema/trailing-comma-object.err | 2 +- tests/qapi-schema/unclosed-list.err | 2 +- tests/qapi-schema/unclosed-object.err | 2 +- tests/qapi-schema/unclosed-string.err | 2 +- tests/qapi-schema/union-invalid-base.err | 2 +- tests/qdev-monitor-test.c | 77 - tests/qemu-iotests-quick.sh | 14 +- tests/qemu-iotests/019 | 2 +- tests/qemu-iotests/025 | 2 +- tests/qemu-iotests/028 | 30 +- tests/qemu-iotests/028.out | 268 + tests/qemu-iotests/030 | 52 +- tests/qemu-iotests/031 | 8 +- tests/qemu-iotests/036 | 58 +- tests/qemu-iotests/036.out | 35 + tests/qemu-iotests/039 | 38 +- tests/qemu-iotests/039.out | 13 +- tests/qemu-iotests/040 | 4 +- tests/qemu-iotests/041 | 238 +- tests/qemu-iotests/041.out | 4 +- tests/qemu-iotests/049.out | 4 +- tests/qemu-iotests/051 | 33 + tests/qemu-iotests/051.out | 71 +- tests/qemu-iotests/052 | 5 +- tests/qemu-iotests/054 | 2 +- tests/qemu-iotests/056 | 9 +- tests/qemu-iotests/059 | 11 + tests/qemu-iotests/059.out | 210 +- tests/qemu-iotests/060 | 84 +- tests/qemu-iotests/060.out | 86 +- tests/qemu-iotests/061 | 49 +- tests/qemu-iotests/061.out | 50 +- tests/qemu-iotests/065 | 14 +- tests/qemu-iotests/067.out | 10 +- tests/qemu-iotests/069 | 2 +- tests/qemu-iotests/070 | 7 + tests/qemu-iotests/070.out | 6 + tests/qemu-iotests/072 | 2 +- tests/qemu-iotests/075 | 2 +- tests/qemu-iotests/076 | 17 +- tests/qemu-iotests/076.out | 12 +- tests/qemu-iotests/078 | 2 +- tests/qemu-iotests/079 | 2 +- tests/qemu-iotests/080 | 2 +- tests/qemu-iotests/081 | 17 +- tests/qemu-iotests/081.out | 12 +- tests/qemu-iotests/082 | 14 +- tests/qemu-iotests/082.out | 140 +- tests/qemu-iotests/083 | 10 +- tests/qemu-iotests/084 | 32 +- tests/qemu-iotests/084.out | 24 +- tests/qemu-iotests/085 | 73 +- tests/qemu-iotests/086 | 10 +- tests/qemu-iotests/087 | 102 + tests/qemu-iotests/087.out | 31 + tests/qemu-iotests/088 | 2 +- tests/qemu-iotests/089 | 129 + tests/qemu-iotests/089.out | 52 + tests/qemu-iotests/090 | 61 + tests/qemu-iotests/090.out | 12 + tests/qemu-iotests/091 | 107 + tests/qemu-iotests/091.out | 28 + tests/qemu-iotests/092 | 2 +- tests/qemu-iotests/095 | 86 + tests/qemu-iotests/095.out | 23 + tests/qemu-iotests/097 | 122 + tests/qemu-iotests/097.out | 119 + tests/qemu-iotests/098 | 82 + tests/qemu-iotests/098.out | 52 + tests/qemu-iotests/099 | 116 + tests/qemu-iotests/099.out | 20 + tests/qemu-iotests/100 | 134 + tests/qemu-iotests/100.out | 89 + tests/qemu-iotests/101 | 58 + tests/qemu-iotests/101.out | 10 + tests/qemu-iotests/102 | 81 + tests/qemu-iotests/102.out | 21 + tests/qemu-iotests/103 | 99 + tests/qemu-iotests/103.out | 29 + tests/qemu-iotests/104 | 57 + tests/qemu-iotests/104.out | 12 + tests/qemu-iotests/105 | 70 + tests/qemu-iotests/105.out | 21 + tests/qemu-iotests/107 | 61 + tests/qemu-iotests/107.out | 10 + tests/qemu-iotests/108 | 141 + tests/qemu-iotests/108.out | 110 + tests/qemu-iotests/111 | 53 + tests/qemu-iotests/111.out | 3 + tests/qemu-iotests/check | 110 +- tests/qemu-iotests/common | 33 +- tests/qemu-iotests/common.config | 2 +- tests/qemu-iotests/common.filter | 51 + tests/qemu-iotests/common.qemu | 200 + tests/qemu-iotests/common.rc | 36 +- tests/qemu-iotests/group | 70 +- tests/qemu-iotests/iotests.py | 9 +- tests/qemu-iotests/qcow2.py | 15 +- .../qemu-iotests/sample_images/fake.parallels.bz2 | Bin 141 -> 0 bytes .../sample_images/iotest-version3.vmdk.bz2 | Bin 414 -> 4764 bytes tests/qemu-iotests/sample_images/parallels-v1.bz2 | Bin 0 -> 147 bytes tests/qemu-iotests/sample_images/parallels-v2.bz2 | Bin 0 -> 150 bytes .../sample_images/test-disk2vhd.vhdx.bz2 | Bin 0 -> 1424 bytes tests/qemu-iotests/socket_scm_helper.c | 2 +- tests/qom-test.c | 21 +- tests/tcg/Makefile | 2 - tests/tcg/lm32/Makefile | 15 +- tests/tcg/lm32/crt.S | 4 +- tests/tcg/lm32/helper.S | 65 + tests/tcg/lm32/macros.inc | 37 +- tests/tcg/lm32/test_lb.S | 4 + tests/tcg/lm32/test_lbu.S | 4 + tests/tcg/lm32/test_lh.S | 4 + tests/tcg/lm32/test_lhu.S | 4 + tests/tcg/lm32/test_lw.S | 2 + tests/tcg/lm32/test_sb.S | 2 + tests/tcg/lm32/test_scall.S | 4 + tests/tcg/lm32/test_sh.S | 2 + tests/tcg/lm32/test_sw.S | 3 + tests/tcg/test_path.c | 7 - tests/tcg/xtensa/Makefile | 10 +- tests/tcg/xtensa/linker.ld | 112 - tests/tcg/xtensa/linker.ld.S | 130 + tests/tcg/xtensa/test_mmu.S | 246 +- tests/tcg/xtensa/test_windowed.S | 51 + tests/test-aio.c | 98 +- tests/test-bitops.c | 1 + tests/test-coroutine.c | 54 + tests/test-qdev-global-props.c | 157 +- tests/test-qemu-opts.c | 441 ++ tests/test-qmp-event.c | 271 + tests/test-qmp-input-strict.c | 117 +- tests/test-qmp-input-visitor.c | 99 +- tests/test-qmp-output-visitor.c | 111 +- tests/test-string-input-visitor.c | 87 +- tests/test-string-output-visitor.c | 178 +- tests/test-thread-pool.c | 52 +- tests/test-throttle.c | 63 +- tests/test-visitor-serialization.c | 32 +- tests/test-vmstate.c | 372 +- tests/tmp105-test.c | 4 +- tests/usb-hcd-ehci-test.c | 173 + tests/usb-hcd-ohci-test.c | 41 + tests/usb-hcd-uhci-test.c | 96 + tests/usb-hcd-xhci-test.c | 99 + tests/vhost-user-test.c | 421 + tests/virtio-blk-test.c | 664 ++- tests/virtio-net-test.c | 10 + tests/virtio-rng-test.c | 10 + tests/virtio-scsi-test.c | 29 + tests/virtio-serial-test.c | 27 + tests/vmstate-static-checker-data/dump1.json | 1163 +++ tests/vmstate-static-checker-data/dump2.json | 968 +++ tests/wdt_ib700-test.c | 134 + thread-pool.c | 69 +- trace-events | 277 +- trace/Makefile.objs | 89 +- trace/control-internal.h | 4 +- trace/control.c | 73 +- trace/control.h | 34 +- trace/default.c | 40 - trace/ftrace.c | 25 +- trace/ftrace.h | 5 + trace/qmp.c | 75 + trace/simple.c | 77 +- trace/simple.h | 1 + trace/stderr.c | 30 - translate-all.c | 159 +- ui/Makefile.objs | 10 +- ui/cocoa.m | 110 +- ui/console.c | 555 +- ui/curses.c | 10 + ui/gtk.c | 1396 +++-- ui/input-keymap.c | 198 + ui/input-legacy.c | 242 +- ui/input.c | 204 +- ui/qemu-pixman.c | 90 + ui/sdl.c | 5 +- ui/sdl2-keymap.h | 7 +- ui/sdl2.c | 141 +- ui/spice-core.c | 101 +- ui/spice-display.c | 149 +- ui/vnc-enc-tight.c | 20 +- ui/vnc-tls.c | 6 +- ui/vnc.c | 387 +- ui/vnc.h | 19 +- user-exec.c | 28 +- util/Makefile.objs | 4 +- util/acl.c | 10 +- util/aes.c | 343 + util/cache-utils.c | 86 - util/cutils.c | 13 +- util/error.c | 18 +- util/fifo8.c | 3 +- util/getauxval.c | 59 +- util/hbitmap.c | 9 +- util/host-utils.c | 2 - util/id.c | 28 + util/iov.c | 44 +- util/module.c | 9 +- util/osdep.c | 21 +- util/oslib-posix.c | 97 +- util/oslib-win32.c | 240 +- util/path.c | 10 +- util/qemu-config.c | 20 +- util/qemu-error.c | 27 +- util/qemu-openpty.c | 2 + util/qemu-option.c | 646 +- util/qemu-sockets.c | 105 +- util/readline.c | 26 +- util/throttle.c | 27 +- vl.c | 1075 ++-- vmstate.c | 33 +- xbzrle.c | 8 +- xen-common-stub.c | 6 - xen-common.c | 25 +- xen-hvm.c | 142 +- 1657 files changed, 142979 insertions(+), 50916 deletions(-) diff --git a/.gitignore b/.gitignore index de90463..e32a584 100644 --- a/.gitignore +++ b/.gitignore @@ -4,12 +4,17 @@ /config-host.* /config-target.* /config.status +/config-temp /trace/generated-tracers.h /trace/generated-tracers.c /trace/generated-tracers-dtrace.h /trace/generated-tracers.dtrace /trace/generated-events.h /trace/generated-events.c +/trace/generated-helpers-wrappers.h +/trace/generated-helpers.h +/trace/generated-helpers.c +/trace/generated-tcg-tracers.h /trace/generated-ust-provider.h /trace/generated-ust.c /libcacard/trace/generated-tracers.c @@ -18,13 +23,14 @@ /*-darwin-user /*-linux-user /*-bsd-user -libdis* -libuser +/libdis* +/libuser /linux-headers/asm /qga/qapi-generated /qapi-generated /qapi-types.[ch] /qapi-visit.[ch] +/qapi-event.[ch] /qmp-commands.h /qmp-marshal.c /qemu-doc.html @@ -49,19 +55,9 @@ libuser /qemu-monitor.texi /qmp-commands.txt /vscclient -/test-bitops -/test-coroutine -/test-int128 -/test-opts-visitor -/test-qmp-input-visitor -/test-qmp-output-visitor -/test-string-input-visitor -/test-string-output-visitor -/test-visitor-serialization /fsdev/virtfs-proxy-helper /fsdev/virtfs-proxy-helper.1 /fsdev/virtfs-proxy-helper.pod -/.gdbinit *.a *.aux *.cp @@ -90,12 +86,8 @@ libuser *.pc .libs .sdk -*.swp -*.orig -.pc *.gcda *.gcno -patches /pc-bios/bios-pq/status /pc-bios/vgabios-pq/status /pc-bios/optionrom/linuxboot.asm diff --git a/.gitmodules b/.gitmodules index 444c24a..9da9ede 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ [submodule "dtc"] path = dtc url = git://git.qemu-project.org/dtc.git +[submodule "roms/u-boot"] + path = roms/u-boot + url = git://git.qemu-project.org/u-boot.git diff --git a/.travis.yml b/.travis.yml index 04da973..ad66e5b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ notifications: on_failure: always env: global: - - TEST_CMD="make check" + - TEST_CMD="" - EXTRA_CONFIG="" # Development packages, EXTRA_PKGS saved for additional builds - CORE_PKGS="libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev" @@ -20,31 +20,51 @@ env: - GUI_PKGS="libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev" - EXTRA_PKGS="" matrix: + # Group major targets together with their linux-user counterparts - TARGETS=alpha-softmmu,alpha-linux-user - - TARGETS=arm-softmmu,arm-linux-user - - TARGETS=aarch64-softmmu,aarch64-linux-user - - TARGETS=cris-softmmu - - TARGETS=i386-softmmu,x86_64-softmmu - - TARGETS=lm32-softmmu - - TARGETS=m68k-softmmu - - TARGETS=microblaze-softmmu,microblazeel-softmmu + - TARGETS=arm-softmmu,arm-linux-user,armeb-linux-user,aarch64-softmmu,aarch64-linux-user + - TARGETS=cris-softmmu,cris-linux-user + - TARGETS=i386-softmmu,i386-linux-user,x86_64-softmmu,x86_64-linux-user + - TARGETS=m68k-softmmu,m68k-linux-user + - TARGETS=microblaze-softmmu,microblazeel-softmmu,microblaze-linux-user,microblazeel-linux-user - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu - - TARGETS=moxie-softmmu - - TARGETS=or32-softmmu, - - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu - - TARGETS=s390x-softmmu - - TARGETS=sh4-softmmu,sh4eb-softmmu - - TARGETS=sparc-softmmu,sparc64-softmmu - - TARGETS=unicore32-softmmu - - TARGETS=xtensa-softmmu,xtensaeb-softmmu + - TARGETS=mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,mipsn32-linux-user,mipsn32el-linux-user + - TARGETS=or32-softmmu,or32-linux-user + - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu,ppc-linux-user,ppc64-linux-user,ppc64abi32-linux-user,ppc64le-linux-user + - TARGETS=s390x-softmmu,s390x-linux-user + - TARGETS=sh4-softmmu,sh4eb-softmmu,sh4-linux-user sh4eb-linux-user + - TARGETS=sparc-softmmu,sparc64-softmmu,sparc-linux-user,sparc32plus-linux-user,sparc64-linux-user + - TARGETS=unicore32-softmmu,unicore32-linux-user + # Group remaining softmmu only targets into one build + - TARGETS=lm32-softmmu,moxie-softmmu,tricore-softmmu,xtensa-softmmu,xtensaeb-softmmu +git: + # we want to do this ourselves + submodules: false before_install: + - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ - git submodule update --init --recursive - sudo apt-get update -qq - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS} -script: "./configure --target-list=${TARGETS} ${EXTRA_CONFIG} && make && ${TEST_CMD}" +before_script: + - ./configure --target-list=${TARGETS} --enable-debug-tcg ${EXTRA_CONFIG} +script: + - make -j2 && ${TEST_CMD} matrix: # We manually include a number of additional build for non-standard bits include: + # Make check target (we only do this once) + - env: + - TARGETS=alpha-softmmu,arm-softmmu,aarch64-softmmu,cris-softmmu, + i386-softmmu,x86_64-softmmu,m68k-softmmu,microblaze-softmmu, + microblazeel-softmmu,mips-softmmu,mips64-softmmu, + mips64el-softmmu,mipsel-softmmu,or32-softmmu,ppc-softmmu, + ppc64-softmmu,ppcemb-softmmu,s390x-softmmu,sh4-softmmu, + sh4eb-softmmu,sparc-softmmu,sparc64-softmmu, + unicore32-softmmu,unicore32-linux-user, + lm32-softmmu,moxie-softmmu,tricore-softmmu,xtensa-softmmu, + xtensaeb-softmmu + TEST_CMD="make check" + compiler: gcc # Debug related options - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_CONFIG="--enable-debug" @@ -66,16 +86,15 @@ matrix: compiler: gcc # All the trace backends (apart from dtrace) - env: TARGETS=i386-softmmu,x86_64-softmmu - EXTRA_CONFIG="--enable-trace-backend=stderr" + EXTRA_CONFIG="--enable-trace-backends=stderr" compiler: gcc - env: TARGETS=i386-softmmu,x86_64-softmmu - EXTRA_CONFIG="--enable-trace-backend=simple" + EXTRA_CONFIG="--enable-trace-backends=simple" compiler: gcc - env: TARGETS=i386-softmmu,x86_64-softmmu - EXTRA_CONFIG="--enable-trace-backend=ftrace" - TEST_CMD="" + EXTRA_CONFIG="--enable-trace-backends=ftrace" compiler: gcc - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_PKGS="liblttng-ust-dev liburcu-dev" - EXTRA_CONFIG="--enable-trace-backend=ust" + EXTRA_CONFIG="--enable-trace-backends=ust" compiler: gcc diff --git a/CODING_STYLE b/CODING_STYLE index 4280945..d46cfa5 100644 --- a/CODING_STYLE +++ b/CODING_STYLE @@ -91,3 +91,17 @@ Mixed declarations (interleaving statements and declarations within blocks) are not allowed; declarations should be at the beginning of blocks. In other words, the code should not generate warnings if using GCC's -Wdeclaration-after-statement option. + +6. Conditional statements + +When comparing a variable for (in)equality with a constant, list the +constant on the right, as in: + +if (a == 1) { + /* Reads like: "If a equals 1" */ + do_something(); +} + +Rationale: Yoda conditions (as in 'if (1 == a)') are awkward to read. +Besides, good compilers already warn users when '==' is mis-typed as '=', +even when the constant is on the right. diff --git a/MAINTAINERS b/MAINTAINERS index c66946f..bcb69e8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -51,14 +51,34 @@ Descriptions of section entries: General Project Administration ------------------------------ M: Anthony Liguori <aliguori@xxxxxxxxxx> +M: Peter Maydell <peter.maydell@xxxxxxxxxx> + +Responsible Disclosure, Reporting Security Issues +------------------------------ +W: http://wiki.qemu.org/SecurityProcess +M: Michael S. Tsirkin <mst@xxxxxxxxxx> +M: Anthony Liguori <aliguori@xxxxxxxxxx> +L: secalert@xxxxxxxxxx Guest CPU cores (TCG): ---------------------- +Overall +L: qemu-devel@xxxxxxxxxx +S: Odd fixes +F: cpu-exec.c +F: cputlb.c +F: softmmu_template.h +F: translate-all.c +F: include/exec/cpu_ldst.h +F: include/exec/cpu_ldst_template.h +F: include/exec/helper*.h + Alpha M: Richard Henderson <rth@xxxxxxxxxxx> S: Maintained F: target-alpha/ F: hw/alpha/ +F: tests/tcg/alpha/ ARM M: Peter Maydell <peter.maydell@xxxxxxxxxx> @@ -72,6 +92,7 @@ M: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> S: Maintained F: target-cris/ F: hw/cris/ +F: tests/tcg/cris/ LM32 M: Michael Walle <michael@xxxxxxxx> @@ -79,6 +100,7 @@ S: Maintained F: target-lm32/ F: hw/lm32/ F: hw/char/lm32_* +F: tests/tcg/lm32/ M68K S: Orphan @@ -93,9 +115,11 @@ F: hw/microblaze/ MIPS M: Aurelien Jarno <aurelien@xxxxxxxxxxx> -S: Odd Fixes +M: Leon Alrae <leon.alrae@xxxxxxxxxx> +S: Maintained F: target-mips/ F: hw/mips/ +F: tests/tcg/mips/ Moxie M: Anthony Green <green@xxxxxxxxxxxxxx> @@ -107,6 +131,7 @@ M: Jia Liu <proljc@xxxxxxxxx> S: Maintained F: target-openrisc/ F: hw/openrisc/ +F: tests/tcg/openrisc/ PowerPC M: Alexander Graf <agraf@xxxxxxx> @@ -142,7 +167,8 @@ F: target-unicore32/ F: hw/unicore32/ X86 -M: qemu-devel@xxxxxxxxxx +M: Paolo Bonzini <pbonzini@xxxxxxxxxx> +M: Richard Henderson <rth@xxxxxxxxxxx> S: Odd Fixes F: target-i386/ F: hw/i386/ @@ -153,6 +179,13 @@ W: http://wiki.osll.spb.ru/doku.php?id=etc:users:jcmvbkbc:qemu-target-xtensa S: Maintained F: target-xtensa/ F: hw/xtensa/ +F: tests/tcg/xtensa/ + +TriCore +M: Bastian Koppelmann <kbastian@xxxxxxxxxxxxxxxxxxxxx> +S: Maintained +F: target-tricore/ +F: hw/tricore/ Guest CPU Cores (KVM): ---------------------- @@ -169,6 +202,11 @@ M: Peter Maydell <peter.maydell@xxxxxxxxxx> S: Maintained F: target-arm/kvm.c +MIPS +M: James Hogan <james.hogan@xxxxxxxxxx> +S: Maintained +F: target-mips/kvm.c + PPC M: Alexander Graf <agraf@xxxxxxx> S: Maintained @@ -180,9 +218,12 @@ M: Cornelia Huck <cornelia.huck@xxxxxxxxxx> M: Alexander Graf <agraf@xxxxxxx> S: Maintained F: target-s390x/kvm.c -F: hw/intc/s390_flic.[hc] +F: hw/intc/s390_flic.c +F: hw/intc/s390_flic_kvm.c +F: include/hw/s390x/s390_flic.h X86 +M: Paolo Bonzini <pbonzini@xxxxxxxxxx> M: Marcelo Tosatti <mtosatti@xxxxxxxxxx> L: kvm@xxxxxxxxxxxxxxx S: Supported @@ -236,8 +277,8 @@ S: Maintained F: hw/*/exynos* Calxeda Highbank -M: Mark Langsdorf <mark.langsdorf@xxxxxxxxxxx> -S: Supported +M: Rob Herring <robh@xxxxxxxxxx> +S: Maintained F: hw/arm/highbank.c F: hw/net/xgmac.c @@ -248,7 +289,7 @@ F: include/hw/arm/digic.h F: hw/*/digic* Gumstix -M: qemu-devel@xxxxxxxxxx +L: qemu-devel@xxxxxxxxxx S: Orphan F: hw/arm/gumstix.c @@ -264,7 +305,7 @@ S: Maintained F: hw/arm/integratorcp.c Mainstone -M: qemu-devel@xxxxxxxxxx +L: qemu-devel@xxxxxxxxxx S: Orphan F: hw/arm/mainstone.c @@ -370,7 +411,7 @@ S: Maintained F: hw/mips/mips_malta.c Mipssim -M: qemu-devel@xxxxxxxxxx +L: qemu-devel@xxxxxxxxxx S: Orphan F: hw/mips/mips_mipssim.c @@ -503,6 +544,8 @@ F: hw/s390x/s390-virtio-ccw.c F: hw/s390x/css.[hc] F: hw/s390x/sclp*.[hc] F: hw/s390x/ipl*.[hc] +F: include/hw/s390x/ +F: pc-bios/s390-ccw/ T: git git://github.com/cohuck/qemu virtio-ccw-upstr UniCore32 Machines @@ -540,17 +583,19 @@ Xtensa Machines sim M: Max Filippov <jcmvbkbc@xxxxxxxxx> S: Maintained -F: hw/xtensa/xtensa_sim.c +F: hw/xtensa/sim.c -Avnet LX60 +XTFPGA (LX60, LX200, ML605, KC705) M: Max Filippov <jcmvbkbc@xxxxxxxxx> S: Maintained -F: hw/xtensa/xtensa_lx60.c +F: hw/xtensa/xtfpga.c +F: hw/net/opencores_eth.c Devices ------- IDE M: Kevin Wolf <kwolf@xxxxxxxxxx> +M: Stefan Hajnoczi <stefanha@xxxxxxxxxx> S: Odd Fixes F: include/hw/ide.h F: hw/ide/ @@ -601,6 +646,13 @@ USB M: Gerd Hoffmann <kraxel@xxxxxxxxxx> S: Maintained F: hw/usb/* +F: tests/usb-*-test.c + +USB (serial adapter) +M: Gerd Hoffmann <kraxel@xxxxxxxxxx> +M: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> +S: Maintained +F: hw/usb/dev-serial.c VFIO M: Alex Williamson <alex.williamson@xxxxxxxxxx> @@ -651,6 +703,12 @@ S: Supported F: hw/block/nvme* F: tests/nvme-test.c +megasas +M: Hannes Reinecke <hare@xxxxxxx> +S: Supported +F: hw/scsi/megasas.c +F: hw/scsi/mfi.h + Xilinx EDK M: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> M: Edgar E. Iglesias <edgar.iglesias@xxxxxxxxx> @@ -658,6 +716,12 @@ S: Maintained F: hw/*/xilinx_* F: include/hw/xilinx.h +Vmware +M: Dmitry Fleytman <dmitry@xxxxxxxxxx> +S: Maintained +F: hw/net/vmxnet* +F: hw/scsi/vmw_pvscsi* + Subsystems ---------- Audio @@ -666,21 +730,38 @@ M: Gerd Hoffmann <kraxel@xxxxxxxxxx> S: Maintained F: audio/ F: hw/audio/ +F: tests/ac97-test.c +F: tests/es1370-test.c +F: tests/intel-hda-test.c Block M: Kevin Wolf <kwolf@xxxxxxxxxx> M: Stefan Hajnoczi <stefanha@xxxxxxxxxx> S: Supported +F: async.c +F: aio-*.c F: block* F: block/ F: hw/block/ +F: qemu-img* +F: qemu-io* +F: tests/image-fuzzer/ +F: tests/qemu-iotests/ T: git git://repo.or.cz/qemu/kevin.git block T: git git://github.com/stefanha/qemu.git block Character Devices M: Anthony Liguori <aliguori@xxxxxxxxxx> +M: Paolo Bonzini <pbonzini@xxxxxxxxxx> S: Maintained F: qemu-char.c +F: backends/msmouse.c +F: backends/testdev.c + +Character Devices (Braille) +M: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> +S: Maintained +F: backends/baum.c CPU M: Andreas Färber <afaerber@xxxxxxx> @@ -702,11 +783,21 @@ S: Maintained F: device_tree.[ch] GDB stub -M: qemu-devel@xxxxxxxxxx +L: qemu-devel@xxxxxxxxxx S: Odd Fixes F: gdbstub* F: gdb-xml/ +Memory API +M: Paolo Bonzini <pbonzini@xxxxxxxxxx> +S: Supported +F: include/exec/ioport.h +F: ioport.c +F: include/exec/memory.h +F: memory.c +F: include/exec/memory-internal.h +F: exec.c + SPICE M: Gerd Hoffmann <kraxel@xxxxxxxxxx> S: Supported @@ -729,7 +820,11 @@ F: ui/cocoa.m Main loop M: Anthony Liguori <aliguori@xxxxxxxxxx> -S: Supported +M: Paolo Bonzini <pbonzini@xxxxxxxxxx> +S: Maintained +F: cpus.c +F: main-loop.c +F: qemu-timer.c F: vl.c Human Monitor (HMP) @@ -768,6 +863,7 @@ M: Luiz Capitulino <lcapitulino@xxxxxxxxxx> M: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> S: Maintained F: qapi/ +F: tests/qapi-schema/ T: git git://repo.or.cz/qemu/qmp-unstable.git queue/qmp QAPI Schema @@ -778,6 +874,29 @@ S: Supported F: qapi-schema.json T: git git://repo.or.cz/qemu/qmp-unstable.git queue/qmp +QObject +M: Luiz Capitulino <lcapitulino@xxxxxxxxxx> +S: Maintained +F: qobject/ +T: git git://repo.or.cz/qemu/qmp-unstable.git queue/qmp + +QEMU Guest Agent +M: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx> +S: Maintained +F: qga/ +T: git git://github.com/mdroth/qemu.git qga + +QOM +M: Anthony Liguori <aliguori@xxxxxxxxxx> +M: Andreas Färber <afaerber@xxxxxxx> +S: Supported +T: git git://github.com/afaerber/qemu-cpu.git qom-next +F: include/qom/ +X: include/qom/cpu.h +F: qom/ +X: qom/cpu.c +F: tests/qom-test.c + QMP M: Luiz Capitulino <lcapitulino@xxxxxxxxxx> S: Maintained @@ -807,14 +926,29 @@ M: Blue Swirl <blauwirbel@xxxxxxxxx> S: Odd Fixes F: scripts/checkpatch.pl +Migration +M: Juan Quintela <quintela@xxxxxxxxxx> +S: Maintained +F: include/migration/ +F: migration* +F: savevm.c +F: arch_init.c +F: vmstate.c + Seccomp -M: Eduardo Otubo <otubo@xxxxxxxxxxxxxxxxxx> +M: Eduardo Otubo <eduardo.otubo@xxxxxxxxxxxxxxxx> S: Supported F: qemu-seccomp.c F: include/sysemu/seccomp.h Usermode Emulation ------------------ +Overall +M: Riku Voipio <riku.voipio@xxxxxx> +S: Maintained +F: thunk.c +F: user-exec.c + BSD user M: Blue Swirl <blauwirbel@xxxxxxxxx> S: Maintained @@ -828,7 +962,6 @@ F: linux-user/ Tiny Code Generator (TCG) ------------------------- Common code -M: qemu-devel@xxxxxxxxxx M: Richard Henderson <rth@xxxxxxxxxxx> S: Maintained F: tcg/ @@ -845,7 +978,7 @@ S: Maintained F: tcg/arm/ i386 target -M: qemu-devel@xxxxxxxxxx +L: qemu-devel@xxxxxxxxxx S: Maintained F: tcg/i386/ @@ -922,7 +1055,7 @@ S: Supported F: block/rbd.c Sheepdog -M: MORITA Kazutaka <morita.kazutaka@xxxxxxxxxxxxx> +M: Hitoshi Mitake <mitake.hitoshi@xxxxxxxxxxxxx> M: Liu Yuan <namei.unix@xxxxxxxxx> L: sheepdog@xxxxxxxxxxxxxx S: Supported @@ -954,3 +1087,14 @@ SSH M: Richard W.M. Jones <rjones@xxxxxxxxxx> S: Supported F: block/ssh.c + +ARCHIPELAGO +M: Chrysostomos Nanakos <cnanakos@xxxxxxxx> +M: Chrysostomos Nanakos <chris@xxxxxxxxxx> +S: Maintained +F: block/archipelago.c + +Bootdevice +M: Gonglei <arei.gonglei@xxxxxxxxxx> +S: Maintained +F: bootdevice.c diff --git a/Makefile b/Makefile index 423e373..f505202 100644 --- a/Makefile +++ b/Makefile @@ -45,19 +45,25 @@ endif endif GENERATED_HEADERS = config-host.h qemu-options.def -GENERATED_HEADERS += qmp-commands.h qapi-types.h qapi-visit.h -GENERATED_SOURCES += qmp-marshal.c qapi-types.c qapi-visit.c +GENERATED_HEADERS += qmp-commands.h qapi-types.h qapi-visit.h qapi-event.h +GENERATED_SOURCES += qmp-marshal.c qapi-types.c qapi-visit.c qapi-event.c GENERATED_HEADERS += trace/generated-events.h GENERATED_SOURCES += trace/generated-events.c GENERATED_HEADERS += trace/generated-tracers.h -ifeq ($(TRACE_BACKEND),dtrace) +ifeq ($(findstring dtrace,$(TRACE_BACKENDS)),dtrace) GENERATED_HEADERS += trace/generated-tracers-dtrace.h endif GENERATED_SOURCES += trace/generated-tracers.c -ifeq ($(TRACE_BACKEND),ust) +GENERATED_HEADERS += trace/generated-tcg-tracers.h + +GENERATED_HEADERS += trace/generated-helpers-wrappers.h +GENERATED_HEADERS += trace/generated-helpers.h +GENERATED_SOURCES += trace/generated-helpers.c + +ifeq ($(findstring ust,$(TRACE_BACKENDS)),ust) GENERATED_HEADERS += trace/generated-ust-provider.h GENERATED_SOURCES += trace/generated-ust.c endif @@ -148,10 +154,6 @@ endif all: $(DOCS) $(TOOLS) $(HELPERS-y) recurse-all modules -vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS) - -vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS) - config-host.h: config-host.h-timestamp config-host.h-timestamp: config-host.mak qemu-options.def: $(SRC_PATH)/qemu-options.hx @@ -195,8 +197,6 @@ ALL_SUBDIRS=$(TARGET_DIRS) $(patsubst %,pc-bios/%, $(ROMS)) recurse-all: $(SUBDIR_RULES) $(ROMSUBDIR_RULES) -bt-host.o: QEMU_CFLAGS += $(BLUEZ_CFLAGS) - $(BUILD_DIR)/version.o: $(SRC_PATH)/version.rc $(BUILD_DIR)/config-host.h | $(BUILD_DIR)/version.lo $(call quiet-command,$(WINDRES) -I$(BUILD_DIR) -o $@ $<," RC version.o") $(BUILD_DIR)/version.lo: $(SRC_PATH)/version.rc $(BUILD_DIR)/config-host.h @@ -208,7 +208,7 @@ Makefile: $(version-obj-y) $(version-lobj-y) # Build libraries libqemustub.a: $(stub-obj-y) -libqemuutil.a: $(util-obj-y) qapi-types.o qapi-visit.o +libqemuutil.a: $(util-obj-y) block-modules = $(foreach o,$(block-obj-m),"$(basename $(subst /,-,$o))",) NULL util/module.o-cflags = -D'CONFIG_BLOCK_MODULES=$(block-modules)' @@ -238,23 +238,44 @@ qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py qga/qapi-generated/qga-qapi-types.c qga/qapi-generated/qga-qapi-types.h :\ $(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py $(gen-out-type) -o qga/qapi-generated -p "qga-" < $<, " GEN $@") + $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \ + $(gen-out-type) -o qga/qapi-generated -p "qga-" -i $<, \ + " GEN $@") qga/qapi-generated/qga-qapi-visit.c qga/qapi-generated/qga-qapi-visit.h :\ $(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py $(gen-out-type) -o qga/qapi-generated -p "qga-" < $<, " GEN $@") + $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \ + $(gen-out-type) -o qga/qapi-generated -p "qga-" -i $<, \ + " GEN $@") qga/qapi-generated/qga-qmp-commands.h qga/qapi-generated/qga-qmp-marshal.c :\ $(SRC_PATH)/qga/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py $(gen-out-type) -o qga/qapi-generated -p "qga-" < $<, " GEN $@") + $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \ + $(gen-out-type) -o qga/qapi-generated -p "qga-" -i $<, \ + " GEN $@") + +qapi-modules = $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/qapi/common.json \ + $(SRC_PATH)/qapi/block.json $(SRC_PATH)/qapi/block-core.json \ + $(SRC_PATH)/qapi/event.json qapi-types.c qapi-types.h :\ -$(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py $(gen-out-type) -o "." -b < $<, " GEN $@") +$(qapi-modules) $(SRC_PATH)/scripts/qapi-types.py $(qapi-py) + $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \ + $(gen-out-type) -o "." -b -i $<, \ + " GEN $@") qapi-visit.c qapi-visit.h :\ -$(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py $(gen-out-type) -o "." -b < $<, " GEN $@") +$(qapi-modules) $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py) + $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \ + $(gen-out-type) -o "." -b -i $<, \ + " GEN $@") +qapi-event.c qapi-event.h :\ +$(qapi-modules) $(SRC_PATH)/scripts/qapi-event.py $(qapi-py) + $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \ + $(gen-out-type) -o "." -b -i $<, \ + " GEN $@") qmp-commands.h qmp-marshal.c :\ -$(SRC_PATH)/qapi-schema.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py $(gen-out-type) -m -o "." < $<, " GEN $@") +$(qapi-modules) $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) + $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \ + $(gen-out-type) -o "." -m -i $<, \ + " GEN $@") QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h) $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) @@ -329,7 +350,8 @@ multiboot.bin linuxboot.bin kvmvapic.bin \ s390-zipl.rom \ s390-ccw.img \ spapr-rtas.bin slof.bin \ -palcode-clipper +palcode-clipper \ +u-boot.e500 else BLOBS= endif @@ -370,19 +392,19 @@ install-sysconfig: install-datadir install-confdir install: all $(if $(BUILD_DOCS),install-doc) install-sysconfig \ install-datadir install-localstatedir - $(INSTALL_DIR) "$(DESTDIR)$(bindir)" ifneq ($(TOOLS),) - $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)" + $(call install-prog,$(TOOLS),$(DESTDIR)$(bindir)) endif ifneq ($(CONFIG_MODULES),) $(INSTALL_DIR) "$(DESTDIR)$(qemu_moddir)" - for s in $(patsubst %.mo,%$(DSOSUF),$(modules-m)); do \ - $(INSTALL_PROG) $(STRIP_OPT) $$s "$(DESTDIR)$(qemu_moddir)/$$(echo $$s | tr / -)"; \ + for s in $(modules-m:.mo=$(DSOSUF)); do \ + t="$(DESTDIR)$(qemu_moddir)/$$(echo $$s | tr / -)"; \ + $(INSTALL_LIB) $$s "$$t"; \ + test -z "$(STRIP)" || $(STRIP) "$$t"; \ done endif ifneq ($(HELPERS-y),) - $(INSTALL_DIR) "$(DESTDIR)$(libexecdir)" - $(INSTALL_PROG) $(STRIP_OPT) $(HELPERS-y) "$(DESTDIR)$(libexecdir)" + $(call install-prog,$(HELPERS-y),$(DESTDIR)$(libexecdir)) endif ifneq ($(BLOBS),) set -e; for x in $(BLOBS); do \ @@ -396,6 +418,7 @@ endif set -e; for x in $(KEYMAPS); do \ $(INSTALL_DATA) $(SRC_PATH)/pc-bios/keymaps/$$x "$(DESTDIR)$(qemu_datadir)/keymaps"; \ done + $(INSTALL_DATA) $(SRC_PATH)/trace-events "$(DESTDIR)$(qemu_datadir)/trace-events" for d in $(TARGET_DIRS); do \ $(MAKE) $(SUBDIR_MAKEFLAGS) TARGET_DIR=$$d/ -C $$d $@ || exit 1 ; \ done diff --git a/Makefile.objs b/Makefile.objs index a6e0e2a..18fd35c 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -1,7 +1,7 @@ ####################################################################### # Common libraries for tools and emulators stub-obj-y = stubs/ -util-obj-y = util/ qobject/ qapi/ trace/ +util-obj-y = util/ qobject/ qapi/ qapi-types.o qapi-visit.o qapi-event.o ####################################################################### # block-obj-y is code used by both qemu system emulation and qemu-img @@ -12,7 +12,6 @@ block-obj-y += main-loop.o iohandler.o qemu-timer.o block-obj-$(CONFIG_POSIX) += aio-posix.o block-obj-$(CONFIG_WIN32) += aio-win32.o block-obj-y += block/ -block-obj-y += qapi-types.o qapi-visit.o block-obj-y += qemu-io-cmds.o block-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o @@ -31,6 +30,8 @@ libcacard-y += libcacard/vcard_emul_nss.o libcacard-y += libcacard/vcard_emul_type.o libcacard-y += libcacard/card_7816.o libcacard-y += libcacard/vcardt.o +libcacard/vcard_emul_nss.o-cflags := $(NSS_CFLAGS) +libcacard/vcard_emul_nss.o-libs := $(NSS_LIBS) ###################################################################### # Target independent part of system emulation. The long term path is to @@ -49,7 +50,7 @@ common-obj-$(CONFIG_LINUX) += fsdev/ common-obj-y += migration.o migration-tcp.o common-obj-y += vmstate.o -common-obj-y += qemu-file.o +common-obj-y += qemu-file.o qemu-file-unix.o qemu-file-stdio.o common-obj-$(CONFIG_RDMA) += migration-rdma.o common-obj-y += qemu-char.o #aio.o common-obj-y += block-migration.o @@ -61,12 +62,15 @@ common-obj-$(CONFIG_SPICE) += spice-qemu-char.o common-obj-y += audio/ common-obj-y += hw/ +common-obj-y += accel.o common-obj-y += ui/ common-obj-y += bt-host.o bt-vhci.o +bt-host.o-cflags := $(BLUEZ_CFLAGS) common-obj-y += dma-helpers.o common-obj-y += vl.o +vl.o-cflags := $(GPROF_CFLAGS) $(SDL_CFLAGS) common-obj-y += tpm.o common-obj-$(CONFIG_SLIRP) += slirp/ @@ -84,11 +88,6 @@ common-obj-y += qmp-marshal.o common-obj-y += qmp.o hmp.o endif -###################################################################### -# some qapi visitors are used by both system and user emulation: - -common-obj-y += qapi-visit.o qapi-types.o - ####################################################################### # Target-independent parts used in system and user emulation common-obj-y += qemu-log.o @@ -103,9 +102,14 @@ version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o version-lobj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.lo ###################################################################### +# tracing +util-obj-y += trace/ +target-obj-y += trace/ + +###################################################################### # guest agent # FIXME: a few definitions from qapi-types.o/qapi-visit.o are needed # by libqemuutil.a. These should be moved to a separate .json schema. -qga-obj-y = qga/ qapi-types.o qapi-visit.o +qga-obj-y = qga/ qga-vss-dll-obj-y = qga/ diff --git a/Makefile.target b/Makefile.target index 6d8fde8..e9ff1ee 100644 --- a/Makefile.target +++ b/Makefile.target @@ -16,26 +16,29 @@ QEMU_CFLAGS+=-I$(SRC_PATH)/include ifdef CONFIG_USER_ONLY # user emulator name QEMU_PROG=qemu-$(TARGET_NAME) +QEMU_PROG_BUILD = $(QEMU_PROG) else # system emulator name +QEMU_PROG=qemu-system-$(TARGET_NAME)$(EXESUF) ifneq (,$(findstring -mwindows,$(libs_softmmu))) # Terminate program name with a 'w' because the linker builds a windows executable. QEMU_PROGW=qemu-system-$(TARGET_NAME)w$(EXESUF) -endif # windows executable -QEMU_PROG=qemu-system-$(TARGET_NAME)$(EXESUF) +$(QEMU_PROG): $(QEMU_PROGW) + $(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG)," GEN $(TARGET_DIR)$(QEMU_PROG)") +QEMU_PROG_BUILD = $(QEMU_PROGW) +else +QEMU_PROG_BUILD = $(QEMU_PROG) endif - -PROGS=$(QEMU_PROG) -ifdef QEMU_PROGW -PROGS+=$(QEMU_PROGW) endif + +PROGS=$(QEMU_PROG) $(QEMU_PROGW) STPFILES= config-target.h: config-target.h-timestamp config-target.h-timestamp: config-target.mak ifdef CONFIG_TRACE_SYSTEMTAP -stap: $(QEMU_PROG).stp-installed $(QEMU_PROG).stp +stap: $(QEMU_PROG).stp-installed $(QEMU_PROG).stp $(QEMU_PROG)-simpletrace.stp ifdef CONFIG_USER_ONLY TARGET_TYPE=user @@ -46,7 +49,7 @@ endif $(QEMU_PROG).stp-installed: $(SRC_PATH)/trace-events $(call quiet-command,$(TRACETOOL) \ --format=stap \ - --backend=$(TRACE_BACKEND) \ + --backends=$(TRACE_BACKENDS) \ --binary=$(bindir)/$(QEMU_PROG) \ --target-name=$(TARGET_NAME) \ --target-type=$(TARGET_TYPE) \ @@ -55,12 +58,19 @@ $(QEMU_PROG).stp-installed: $(SRC_PATH)/trace-events $(QEMU_PROG).stp: $(SRC_PATH)/trace-events $(call quiet-command,$(TRACETOOL) \ --format=stap \ - --backend=$(TRACE_BACKEND) \ + --backends=$(TRACE_BACKENDS) \ --binary=$(realpath .)/$(QEMU_PROG) \ --target-name=$(TARGET_NAME) \ --target-type=$(TARGET_TYPE) \ < $< > $@," GEN $(TARGET_DIR)$(QEMU_PROG).stp") +$(QEMU_PROG)-simpletrace.stp: $(SRC_PATH)/trace-events + $(call quiet-command,$(TRACETOOL) \ + --format=simpletrace-stap \ + --backends=$(TRACE_BACKENDS) \ + --probe-prefix=qemu.$(TARGET_TYPE).$(TARGET_NAME) \ + < $< > $@," GEN $(TARGET_DIR)$(QEMU_PROG)-simpletrace.stp") + else stap: endif @@ -82,6 +92,12 @@ obj-y += disas.o obj-$(call notempty,$(TARGET_XML_FILES)) += gdbstub-xml.o obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o +obj-$(CONFIG_LIBDECNUMBER) += libdecnumber/decContext.o +obj-$(CONFIG_LIBDECNUMBER) += libdecnumber/decNumber.o +obj-$(CONFIG_LIBDECNUMBER) += libdecnumber/dpd/decimal32.o +obj-$(CONFIG_LIBDECNUMBER) += libdecnumber/dpd/decimal64.o +obj-$(CONFIG_LIBDECNUMBER) += libdecnumber/dpd/decimal128.o + ######################################################### # Linux user emulator target @@ -99,7 +115,8 @@ endif #CONFIG_LINUX_USER ifdef CONFIG_BSD_USER -QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ABI_DIR) +QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ABI_DIR) \ + -I$(SRC_PATH)/bsd-user/$(HOST_VARIANT_DIR) obj-y += bsd-user/ obj-y += gdbstub.o user-exec.o @@ -109,8 +126,8 @@ endif #CONFIG_BSD_USER ######################################################### # System emulator target ifdef CONFIG_SOFTMMU -obj-y += arch_init.o cpus.o monitor.o gdbstub.o balloon.o ioport.o -obj-y += qtest.o +obj-y += arch_init.o cpus.o monitor.o gdbstub.o balloon.o ioport.o numa.o +obj-y += qtest.o bootdevice.o obj-y += hw/ obj-$(CONFIG_FDT) += device_tree.o obj-$(CONFIG_KVM) += kvm-all.o @@ -140,40 +157,27 @@ endif # CONFIG_SOFTMMU %/translate.o: QEMU_CFLAGS += $(TRANSLATE_OPT_CFLAGS) dummy := $(call unnest-vars,,obj-y) +all-obj-y := $(obj-y) -# we are making another call to unnest-vars with different vars, protect obj-y, -# it can be overriden in subdir Makefile.objs -obj-y-save := $(obj-y) - +target-obj-y := block-obj-y := common-obj-y := include $(SRC_PATH)/Makefile.objs +dummy := $(call unnest-vars,,target-obj-y) +target-obj-y-save := $(target-obj-y) dummy := $(call unnest-vars,.., \ block-obj-y \ block-obj-m \ common-obj-y \ common-obj-m) - -# Now restore obj-y -obj-y := $(obj-y-save) - -all-obj-y = $(obj-y) $(common-obj-y) +target-obj-y := $(target-obj-y-save) +all-obj-y += $(common-obj-y) +all-obj-y += $(target-obj-y) all-obj-$(CONFIG_SOFTMMU) += $(block-obj-y) -ifndef CONFIG_HAIKU -LIBS+=-lm -endif - -ifdef QEMU_PROGW -# The linker builds a windows executable. Make also a console executable. -$(QEMU_PROGW): $(all-obj-y) ../libqemuutil.a ../libqemustub.a - $(call LINK,$^) -$(QEMU_PROG): $(QEMU_PROGW) - $(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG)," GEN $(TARGET_DIR)$(QEMU_PROG)") -else -$(QEMU_PROG): $(all-obj-y) ../libqemuutil.a ../libqemustub.a +# build either PROG or PROGW +$(QEMU_PROG_BUILD): $(all-obj-y) ../libqemuutil.a ../libqemustub.a $(call LINK,$^) -endif gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/scripts/feature_to_c.sh $(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES)," GEN $(TARGET_DIR)$@") @@ -194,14 +198,12 @@ endif install: all ifneq ($(PROGS),) - $(INSTALL) -m 755 $(PROGS) "$(DESTDIR)$(bindir)" -ifneq ($(STRIP),) - $(STRIP) $(patsubst %,"$(DESTDIR)$(bindir)/%",$(PROGS)) -endif + $(call install-prog,$(PROGS),$(DESTDIR)$(bindir)) endif ifdef CONFIG_TRACE_SYSTEMTAP $(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/../systemtap/tapset" $(INSTALL_DATA) $(QEMU_PROG).stp-installed "$(DESTDIR)$(qemu_datadir)/../systemtap/tapset/$(QEMU_PROG).stp" + $(INSTALL_DATA) $(QEMU_PROG)-simpletrace.stp "$(DESTDIR)$(qemu_datadir)/../systemtap/tapset/$(QEMU_PROG)-simpletrace.stp" endif GENERATED_HEADERS += config-target.h diff --git a/VERSION b/VERSION index e9307ca..ccbccc3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.2 +2.2.0 diff --git a/accel.c b/accel.c new file mode 100644 index 0000000..74e41da --- /dev/null +++ b/accel.c @@ -0,0 +1,157 @@ +/* + * QEMU System Emulator, accelerator interfaces + * + * Copyright (c) 2003-2008 Fabrice Bellard + * Copyright (c) 2014 Red Hat Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "sysemu/accel.h" +#include "hw/boards.h" +#include "qemu-common.h" +#include "sysemu/arch_init.h" +#include "sysemu/sysemu.h" +#include "sysemu/kvm.h" +#include "sysemu/qtest.h" +#include "hw/xen/xen.h" +#include "qom/object.h" +#include "hw/boards.h" + +int tcg_tb_size; +static bool tcg_allowed = true; + +static int tcg_init(MachineState *ms) +{ + tcg_exec_init(tcg_tb_size * 1024 * 1024); + return 0; +} + +static const TypeInfo accel_type = { + .name = TYPE_ACCEL, + .parent = TYPE_OBJECT, + .class_size = sizeof(AccelClass), + .instance_size = sizeof(AccelState), +}; + +/* Lookup AccelClass from opt_name. Returns NULL if not found */ +static AccelClass *accel_find(const char *opt_name) +{ + char *class_name = g_strdup_printf(ACCEL_CLASS_NAME("%s"), opt_name); + AccelClass *ac = ACCEL_CLASS(object_class_by_name(class_name)); + g_free(class_name); + return ac; +} + +static int accel_init_machine(AccelClass *acc, MachineState *ms) +{ + ObjectClass *oc = OBJECT_CLASS(acc); + const char *cname = object_class_get_name(oc); + AccelState *accel = ACCEL(object_new(cname)); + int ret; + ms->accelerator = accel; + *(acc->allowed) = true; + ret = acc->init_machine(ms); + if (ret < 0) { + ms->accelerator = NULL; + *(acc->allowed) = false; + object_unref(OBJECT(accel)); + } + return ret; +} + +int configure_accelerator(MachineState *ms) +{ + const char *p; + char buf[10]; + int ret; + bool accel_initialised = false; + bool init_failed = false; + AccelClass *acc = NULL; + + p = qemu_opt_get(qemu_get_machine_opts(), "accel"); + if (p == NULL) { + /* Use the default "accelerator", tcg */ + p = "tcg"; + } + + while (!accel_initialised && *p != '\0') { + if (*p == ':') { + p++; + } + p = get_opt_name(buf, sizeof(buf), p, ':'); + acc = accel_find(buf); + if (!acc) { + fprintf(stderr, "\"%s\" accelerator not found.\n", buf); + continue; + } + if (acc->available && !acc->available()) { + printf("%s not supported for this target\n", + acc->name); + continue; + } + ret = accel_init_machine(acc, ms); + if (ret < 0) { + init_failed = true; + fprintf(stderr, "failed to initialize %s: %s\n", + acc->name, + strerror(-ret)); + } else { + accel_initialised = true; + } + } + + if (!accel_initialised) { + if (!init_failed) { + fprintf(stderr, "No accelerator found!\n"); + } + exit(1); + } + + if (init_failed) { + fprintf(stderr, "Back to %s accelerator.\n", acc->name); + } + + return !accel_initialised; +} + + +static void tcg_accel_class_init(ObjectClass *oc, void *data) +{ + AccelClass *ac = ACCEL_CLASS(oc); + ac->name = "tcg"; + ac->init_machine = tcg_init; + ac->allowed = &tcg_allowed; +} + +#define TYPE_TCG_ACCEL ACCEL_CLASS_NAME("tcg") + +static const TypeInfo tcg_accel_type = { + .name = TYPE_TCG_ACCEL, + .parent = TYPE_ACCEL, + .class_init = tcg_accel_class_init, +}; + +static void register_accel_types(void) +{ + type_register_static(&accel_type); + type_register_static(&tcg_accel_type); +} + +type_init(register_accel_types); diff --git a/aio-posix.c b/aio-posix.c index f921d4f..d3ac06e 100644 --- a/aio-posix.c +++ b/aio-posix.c @@ -100,6 +100,11 @@ void aio_set_event_notifier(AioContext *ctx, (IOHandler *)io_read, NULL, notifier); } +bool aio_prepare(AioContext *ctx) +{ + return false; +} + bool aio_pending(AioContext *ctx) { AioHandler *node; @@ -119,13 +124,22 @@ bool aio_pending(AioContext *ctx) return false; } -static bool aio_dispatch(AioContext *ctx) +bool aio_dispatch(AioContext *ctx) { AioHandler *node; bool progress = false; /* - * We have to walk very carefully in case qemu_aio_set_fd_handler is + * If there are callbacks left that have been queued, we need to call them. + * Do not call select in this case, because it is possible that the caller + * does not need a complete flush (as is the case for aio_poll loops). + */ + if (aio_bh_poll(ctx)) { + progress = true; + } + + /* + * We have to walk very carefully in case aio_set_fd_handler is * called while we're walking. */ node = QLIST_FIRST(&ctx->aio_handlers); @@ -175,28 +189,24 @@ static bool aio_dispatch(AioContext *ctx) bool aio_poll(AioContext *ctx, bool blocking) { AioHandler *node; + bool was_dispatching; int ret; bool progress; + was_dispatching = ctx->dispatching; progress = false; - /* - * If there are callbacks left that have been queued, we need to call them. - * Do not call select in this case, because it is possible that the caller - * does not need a complete flush (as is the case for qemu_aio_wait loops). + /* aio_notify can avoid the expensive event_notifier_set if + * everything (file descriptors, bottom halves, timers) will + * be re-evaluated before the next blocking poll(). This is + * already true when aio_poll is called with blocking == false; + * if blocking == true, it is only true after poll() returns. + * + * If we're in a nested event loop, ctx->dispatching might be true. + * In that case we can restore it just before returning, but we + * have to clear it now. */ - if (aio_bh_poll(ctx)) { - blocking = false; - progress = true; - } - - if (aio_dispatch(ctx)) { - progress = true; - } - - if (progress && !blocking) { - return true; - } + aio_set_dispatching(ctx, !blocking); ctx->walking_handlers++; @@ -220,7 +230,7 @@ bool aio_poll(AioContext *ctx, bool blocking) /* wait until next event */ ret = qemu_poll_ns((GPollFD *)ctx->pollfds->data, ctx->pollfds->len, - blocking ? timerlistgroup_deadline_ns(&ctx->tlg) : 0); + blocking ? aio_compute_timeout(ctx) : 0); /* if we have any readable fds, dispatch event */ if (ret > 0) { @@ -234,9 +244,11 @@ bool aio_poll(AioContext *ctx, bool blocking) } /* Run dispatch even if there were no readable fds to run timers */ + aio_set_dispatching(ctx, true); if (aio_dispatch(ctx)) { progress = true; } + aio_set_dispatching(ctx, was_dispatching); return progress; } diff --git a/aio-win32.c b/aio-win32.c index 23f4e5b..d81313b 100644 --- a/aio-win32.c +++ b/aio-win32.c @@ -22,12 +22,80 @@ struct AioHandler { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |