Peter Maydell [Fri, 19 Apr 2013 11:24:19 +0000 (12:24 +0100)]
target-arm: Add some missing CPU state fields to VMState
A number of CPU state fields were accidentally omitted from
our migration state: some OMAP specific cp15 registers, and
some related to state for load/store exclusive insns. Add them.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Juan Quintela [Fri, 19 Apr 2013 11:24:19 +0000 (12:24 +0100)]
target-arm: port ARM CPU save/load to use VMState
Port the ARM CPU save/load code to use VMState. Some state is
saved in a slightly different order to simplify things -- for
example arrays are saved one after the other rather than 'striped',
and we always save all 32 VFP registers even if the CPU happens
to only have 16.
Use one subsection for each feature. This means that we don't need to
bump the version field each time that a new feature gets introduced.
Signed-off-by: Juan Quintela <quintela@redhat.com>
[PMM: fixed conflicts, updated to use cpu_class_set_vmsd(), updated
with new/removed fields since original patch, changed to use custom
VMStateInfo for cpsr rather than presave/postload hooks, corrected
subsection names so vmload doesn't fail]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Peter Chubb [Fri, 19 Apr 2013 11:24:18 +0000 (12:24 +0100)]
target-arm: Reinsert missing return statement in ARM mode SRS decode
Since patch
81465888c5306cd94abb9847e560796fd13d3c2f
target-arm: factor out handling of SRS instruction
the ARM mode SRS instruction has not worked in QEMU.
The problem is a missing return directive that was removed in the
refactoring, so after decoding the instruction, qemu would fall through
to generate an UNDEF exception for an illegal instruction.
Signed-off-by: Peter Chubb <peter.chubb@nicta.com.au>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:47 +0000 (16:26 +0200)]
configure: remove duplicate test
We already had a test to add -march=i486 when needed. Make the
existing test independent of vhost-net, so that it is also used
under Win32.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:46 +0000 (16:26 +0200)]
configure: CONFIG_NO_XEN is duplicated
We already define it in Makefile.target. But we need to avoid a
curious double negation in order to eliminate it.
Tested-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:45 +0000 (16:26 +0200)]
configure: eliminate target_libs_softmmu
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:44 +0000 (16:26 +0200)]
configure: move common libraries to config-host.mak
Move -lm to the end of the line, so that it can be picked up as a
dependency by pixman in the static build case.
Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:43 +0000 (16:26 +0200)]
configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:42 +0000 (16:26 +0200)]
elfload: use abi_llong/ullong instead of target_llong/ullong
The alignment is a characteristic of the ABI, not the CPU.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:41 +0000 (16:26 +0200)]
elfload: only give abi_long/ulong the alignment specified by the target
Previously, this was done for target_long/ulong, and propagated to
abi_long/ulong via a typedef. But target_long/ulong should not
have any specific alignment, it is never used to access guest
memory.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:40 +0000 (16:26 +0200)]
elfload: use abi_int/uint instead of target_int/uint
The alignment is a characteristic of the ABI, not the CPU.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:39 +0000 (16:26 +0200)]
elfload: use abi_short/ushort instead of target_short/ushort
The alignment is a characteristic of the ABI, not the CPU.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:38 +0000 (16:26 +0200)]
elfload: use tswapreg consistently in elf_core_copy_regs
Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:37 +0000 (16:26 +0200)]
elfload: fix size of registers for N32
Registers are 64-bit in size for the MIPS n32 ABI. Define
target_elf_greg_t accordingly, and use the correct function
to do endian swaps.
Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:36 +0000 (16:26 +0200)]
elfload: fix size of ABI-dependent fields in core dumps
Some fields in core dumps are 32-bit in 32-or-64 environments (ppc64abi32,
sparc32plus). Use abi_long/ulong for those.
Also, the fields of target_elf_siginfo are ints. Use tswap32 to convert them.
Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Paolo Bonzini [Wed, 17 Apr 2013 14:26:35 +0000 (16:26 +0200)]
configure: QEMU_INCLUDES are the same for all subtargets
Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Thu, 18 Apr 2013 04:47:31 +0000 (14:47 +1000)]
configure/Make: Build libfdt from submodule DTC
Configure to use the DTC submodule to build libfdt when no system libfdt
is found. Prompt to install the DTC submodule if --enable-fdt is set but
no DTC can be found.
DTC has no out-of-tree build capability, so the configure will symlink
the Makefile and scripts directory in the out of tree build directory
and pass in all the needed DTC arguments to make out of tree build happen.
Ideally we fix the DTC make to support out of tree, but did it this way to
avoid commits to DTC.
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Thu, 18 Apr 2013 04:46:53 +0000 (14:46 +1000)]
dtc: add submodule
Add dtc submodule as a fallback for old distros.
Picking version 1.3.0. as this is the most recently tagged stable version.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Thu, 18 Apr 2013 04:46:14 +0000 (14:46 +1000)]
configure: Put cross compile flags in EXTRA_CFLAGS
The cross compile CFLAGS are needed to properly build pixman (and any other
submodules). Only the EXTRA_CFLAGS set is passed to submodules not QEMU_CFLAGS,
so put the cross compile flags in EXTRA_CFLAGS instead.
Signed-off-by: Peter Crosthwaite peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
KONRAD Frederic [Thu, 11 Apr 2013 14:30:02 +0000 (16:30 +0200)]
virtio-net: cleanup: init and exit function.
This remove old init and exit function as they are no longer needed.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id:
1365690602-22729-8-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
KONRAD Frederic [Thu, 11 Apr 2013 14:30:01 +0000 (16:30 +0200)]
virtio-net: cleanup: use QOM cast.
As the virtio-net-pci and virtio-net-s390 are switched to the new API,
we can use QOM casts.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id:
1365690602-22729-7-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
KONRAD Frederic [Thu, 11 Apr 2013 14:30:00 +0000 (16:30 +0200)]
virtio-net-ccw: switch to the new API.
Here the virtio-net-ccw is modified for the new API. The device
virtio-net-ccw extends virtio-ccw-device as before. It creates and
connects a virtio-net-device during the init. The properties are not modified.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id:
1365690602-22729-6-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
KONRAD Frederic [Thu, 11 Apr 2013 14:29:59 +0000 (16:29 +0200)]
virtio-net-s390: switch to the new API.
Here the virtio-net-s390 is modified for the new API. The device
virtio-net-s390 extends virtio-s390-device as before. It creates and
connects a virtio-net-device during the init. The properties are not modified.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id:
1365690602-22729-5-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
KONRAD Frederic [Thu, 11 Apr 2013 14:29:58 +0000 (16:29 +0200)]
virtio-net-pci: switch to the new API.
Here the virtio-net-pci is modified for the new API. The device
virtio-net-pci extends virtio-pci. It creates and connects a
virtio-net-device during the init. The properties are not changed.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id:
1365690602-22729-4-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
KONRAD Frederic [Thu, 11 Apr 2013 14:29:57 +0000 (16:29 +0200)]
virtio-net: add the virtio-net device.
Create virtio-net-device which extends virtio-device, so it can be connected on
virtio-bus.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id:
1365690602-22729-3-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
KONRAD Frederic [Thu, 11 Apr 2013 14:29:56 +0000 (16:29 +0200)]
virtio: add two functions to VirtioDeviceClass.
Recent changes need two functions to VirtioDevice. This just add them
into VirtioDeviceClass.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id:
1365690602-22729-2-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Markus Armbruster [Tue, 16 Apr 2013 11:51:06 +0000 (13:51 +0200)]
Fix warnings suppressors to honor --disable-werror
Replace
#pragma GCC diagnostic ignored FOO
[Troublesome code...]
#pragma GCC diagnostic error FOO
by
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored FOO
[Troublesome code...]
#pragma GCC diagnostic pop
Broken in commit 3f4349d, commit 092bb30, and commit c95e308.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Tested-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id:
1366113066-1340-1-git-send-email-armbru@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Tue, 16 Apr 2013 14:45:21 +0000 (09:45 -0500)]
fw_cfg: add qtest test case
This validates some basic characteristics of fw_cfg.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id:
1366123521-4330-8-git-send-email-aliguori@us.ibm.com
Anthony Liguori [Tue, 16 Apr 2013 14:45:20 +0000 (09:45 -0500)]
i440fx-test: add test for PAM functionality
This tests PAM settings for the i440fx. This test does a lot of
byte MMIO which is fairly slow with qtest today. But the test
does complete in under 2 seconds.
We don't fully emulate PAM largely because of limitations with
KVM so we #if 0 that part of the test case.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id:
1366123521-4330-7-git-send-email-aliguori@us.ibm.com
Anthony Liguori [Tue, 16 Apr 2013 14:45:19 +0000 (09:45 -0500)]
i440fx-test: add test to compare default register values
This test compares all of the default register values against the
spec. It turns out we deviate in quite a few places. These
places are really only visible to the BIOS though which is why
this hasn't created any problems.
The deviation actually happens in the core PCI layer so I suspect
it's not a simple fix if we really care to fix it. For now, just
disable the affected checks.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id:
1366123521-4330-6-git-send-email-aliguori@us.ibm.com
Anthony Liguori [Tue, 16 Apr 2013 14:45:18 +0000 (09:45 -0500)]
libqos: add malloc support
This is a very simple allocator for the PC platform. It should
be possible to add backends for other platforms.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id:
1366123521-4330-5-git-send-email-aliguori@us.ibm.com
Anthony Liguori [Tue, 16 Apr 2013 14:45:17 +0000 (09:45 -0500)]
libqos: add fw_cfg support
fw_cfg is needed to get the top of memory which is necessary for
doing PCI allocation and allocating RAM for DMA.
Add a PC version of fw_cfg and enough abstraction to support other
platforms.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id:
1366123521-4330-4-git-send-email-aliguori@us.ibm.com
Anthony Liguori [Tue, 16 Apr 2013 14:45:16 +0000 (09:45 -0500)]
qtest: add libqos including PCI support
This includes basic PCI support for the PC platform. Enough
abstraction should be present to support non-PC platforms too.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id:
1366123521-4330-3-git-send-email-aliguori@us.ibm.com
Anthony Liguori [Tue, 16 Apr 2013 14:45:15 +0000 (09:45 -0500)]
qtest: don't use system command to avoid double fork
Currently we waitpid on the child process we spawn off that does
nothing more than system() another process. While this does not
appear to be incorrect, it's wasteful and confusing so get rid of
it.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id:
1366123521-4330-2-git-send-email-aliguori@us.ibm.com
Eric Blake [Tue, 16 Apr 2013 21:50:41 +0000 (15:50 -0600)]
migration: reflect incoming failure to shell
Management apps like libvirt don't know to pay attention to
stderr unless there is a non-zero exit status.
* migration.c (process_incoming_migration_co): Exit with non-zero
status on failure.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-id:
1366149041-626-1-git-send-email-eblake@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Alexey Kardashevskiy [Wed, 17 Apr 2013 07:49:00 +0000 (17:49 +1000)]
qbus: remove wrong error messages
The existing code shows the "Bus '%s' is full" message even if name
is specified and different from bus->name (i.e. match=0).
The patch excludes unnecessary error message.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Message-id:
1366184940-13516-1-git-send-email-aik@ozlabs.ru
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Lei Li [Wed, 17 Apr 2013 08:46:54 +0000 (16:46 +0800)]
chardev: remove the headers of Memory chardev driver
Memory chardev driver is no longer used, and Commit:
4bf0bb8014ac2ac61b1004f5d92b2a4594d48017 has droped
it but the headers, so clean it up.
Signed-off-by: Lei Li <lilei@linux.vnet.ibm.com>
Message-id:
1366188414-24214-1-git-send-email-lilei@linux.vnet.ibm.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Wed, 17 Apr 2013 15:14:07 +0000 (10:14 -0500)]
Merge remote-tracking branch 'bonzini/migration-writev' into staging
# By Paolo Bonzini
# Via Paolo Bonzini
* bonzini/migration-writev:
qemu-file: do not use stdio for qemu_fdopen
iov: handle partial writes from sendmsg and recvmsg
iov: reorganize iov_send_recv, part 3
iov: reorganize iov_send_recv, part 2
iov: reorganize iov_send_recv, part 1
qemu-file: drop socket_put_buffer
Message-id:
1366192012-14872-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Paolo Bonzini [Wed, 27 Mar 2013 16:36:32 +0000 (17:36 +0100)]
qemu-file: do not use stdio for qemu_fdopen
This uses system calls directly for Unix file descriptors, so that the
efficient writev_buffer can be used. Pay attention to the possibility
of partial writes in writev.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini [Wed, 27 Mar 2013 16:36:31 +0000 (17:36 +0100)]
iov: handle partial writes from sendmsg and recvmsg
Partial writes can still happen in sendmsg and recvmsg, if a
signal is received in the middle of a write. To handle this,
retry the operation with a new offset/bytes pair.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini [Wed, 27 Mar 2013 16:36:30 +0000 (17:36 +0100)]
iov: reorganize iov_send_recv, part 3
"si" and "ei" are merged in a single variable.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini [Wed, 27 Mar 2013 16:36:29 +0000 (17:36 +0100)]
iov: reorganize iov_send_recv, part 2
Do not touch the "bytes" argument anymore. Instead, remember the
original length of the last iovec if we touch it, and restore it
afterwards.
This requires undoing the changes in opposite order. The previous
algorithm didn't care.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini [Wed, 27 Mar 2013 16:36:28 +0000 (17:36 +0100)]
iov: reorganize iov_send_recv, part 1
Once the initial part of the iov is dropped, it is not used anymore.
Modify iov/iovcnt directly instead of adjusting them with the "si"
variable.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini [Wed, 27 Mar 2013 16:36:27 +0000 (17:36 +0100)]
qemu-file: drop socket_put_buffer
It is enough to implement one of socket_writev_buffer and
socket_put_buffer.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wassermann <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini [Tue, 2 Apr 2013 13:50:00 +0000 (15:50 +0200)]
qom: do nothing on unparent of object without parent
Otherwise, device_unparent will fail to get a canonical path of
the object.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id:
1364910600-3418-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Andreas Färber [Tue, 16 Apr 2013 01:50:21 +0000 (03:50 +0200)]
qdev: Fix device_add bus assumptions
Drop an unreachable fallback bus assignment to SysBus.
If no ,bus= is specified, only search busses recursively for bus type if
the DeviceClass has a bus_type specified. Handle resulting NULL cases.
Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Message-id:
1366077021-28882-1-git-send-email-afaerber@suse.de
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Amit Shah [Tue, 16 Apr 2013 10:28:16 +0000 (15:58 +0530)]
rng random backend: check for -EAGAIN errors on read
Not handling EAGAIN triggers the assert
qemu/backends/rng-random.c:44:entropy_available: assertion failed: (len != -1)
Aborted (core dumped)
This happens when starting a guest with '-device virtio-rng-pci',
issuing a 'cat /dev/hwrng' in the guest, while also doing 'cat
/dev/random' on the host.
Reported-by: yunpingzheng <yunzheng@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Message-id:
eacda84dfaf2d99cf6d250b678be4e4d6c2088fb.
1366108096.git.amit.shah@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Paolo Bonzini [Tue, 9 Apr 2013 15:43:43 +0000 (17:43 +0200)]
migration: initialize RAM to zero
Using qemu_memalign only leaves the RAM zero by chance, because libc
will usually use mmap to satisfy our huge requests. But memory will
not be zero when using MALLOC_PERTURB_ with a nonzero value. In the
case of incoming migration, this breaks a recently-introduced
invariant (commit f1c7279, migration: do not sent zero pages in
bulk stage, 2013-03-26).
To fix this, use mmap ourselves to get a well-aligned, always zero
block for the RAM. Mmap-ed memory is easy to "trim" at the sides.
This also removes the need to do something special on valgrind
(see commit
c2a8238a, Support running QEMU on Valgrind, 2011-10-31),
thus effectively reverts that patch.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id:
1365522223-20153-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Tue, 16 Apr 2013 15:28:58 +0000 (10:28 -0500)]
Merge remote-tracking branch 'kraxel/usb.80' into staging
# By Gerd Hoffmann (6) and Hans de Goede (1)
# Via Gerd Hoffmann
* kraxel/usb.80:
use libusb for usb-host
xhci: fix address device
xhci: use slotid as device address
xhci: fix portsc writes
xhci: add xhci_cap_write
xhci: remove leftover debug printf
usb-serial: Remove double call to qemu_chr_add_handlers( NULL )
Message-id:
1366107190-30853-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Tue, 16 Apr 2013 15:28:51 +0000 (10:28 -0500)]
Merge remote-tracking branch 'spice/spice.v69' into staging
# By Hans de Goede (5) and others
# Via Gerd Hoffmann
* spice/spice.v69:
spice-qemu-char: vmc_write: Don't write more bytes then we're asked too
spice-qemu-char: Remove intermediate buffer
spice-qemu-char: Add watch support
spice-qemu-char: Remove #ifdef-ed code for old spice-server compat
virtio-console: Remove any pending watches on close
virtio-console: Also throttle when less was written then requested
spice: (32 bit only) fix surface cmd tracking destruction
qxl: add 2000x2000 and 2048x2048 video modes
qxl: add 4k + 8k resolutions
Message-id:
1366106194-28826-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Tue, 16 Apr 2013 15:28:43 +0000 (10:28 -0500)]
Merge remote-tracking branch 'kraxel/pixman.v11' into staging
# By Gerd Hoffmann (22) and Igor Mitsyanko (2)
# Via Gerd Hoffmann
* kraxel/pixman.v11: (24 commits)
qxl: register QemuConsole for secondary cards
gtk: custom cursor support
console: allow pinning displaychangelisteners to consoles
console: add qemu_console_is_*
xen: re-enable refresh interval reporting for xenfb
console: gui timer fixes
console: add GraphicHwOps
console: make DisplayState private to console.c
console: move gui_update+gui_setup_refresh from vl.c into console.c
console: zap g_width + g_height
console: simplify screendump
console: give each QemuConsole its own DisplaySurface
console: rename vga_hw_*, add QemuConsole param
console: displaystate init revamp
console: add trace events
console: switch color_table_rgb to pixman_color_t
console: use pixman for font rendering
console: use pixman for fill+blit
pixman: render vgafont glyphs into pixman images
pixman: add qemu_pixman_color()
...
Message-id:
1366105178-26744-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Tue, 16 Apr 2013 15:28:36 +0000 (10:28 -0500)]
Merge remote-tracking branch 'afaerber/qom-cpu' into staging
# By Igor Mammedov (8) and others
# Via Andreas Färber
* afaerber/qom-cpu:
target-cris: Override do_interrupt for pre-v32 CPU cores
qdev: Set device's parent before calling realize() down inheritance chain
cpu: Pass CPUState to *cpu_synchronize_post*()
target-i386: Split out CPU creation and features parsing
target-i386/cpu.c: Coding style fixes
ioapic: Replace FROM_SYSBUS() with QOM type cast
kvmvapic: Replace FROM_SYSBUS() with QOM type cast
target-i386: Split APIC creation from initialization in x86_cpu_realizefn()
target-i386: Consolidate error propagation in x86_cpu_realizefn()
qdev: Add qdev property for bool type
target-i386: Improve -cpu ? features output
target-i386: Fix including "host" in -cpu ? output
Gerd Hoffmann [Fri, 30 Nov 2012 15:02:11 +0000 (16:02 +0100)]
use libusb for usb-host
Reimplement usb-host on top of libusb.
Reasons to do this:
(1) Largely rewritten from scratch, nice opportunity to kill historical
cruft.
(2) Offload usbfs handling to libusb.
(3) Have a single portable code base instead of bsd + linux variants.
(4) Bring usb-host support to any platform supported by libusbx.
For now this goes side-by-side to the existing code. That is only to
simplify regression testing though, at the end of the day I want remove
the old code and support libusb exclusively. Merge early in 1.5 cycle,
remove the old code after 1.5 release or something like this.
Thanks to qdev the old and new code can coexist nicely on linux. Just
use "-device usb-host-linux" to use the old linux driver instead of the
libusb one (which takes over the "usb-host" name).
The bsd driver isn't qdev'ified so it isn't that easy for bsd.
I didn't bother making it runtime switchable, so you have to rebuild
qemu with --disable-libusb to get back the old code.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Fri, 5 Apr 2013 13:18:52 +0000 (15:18 +0200)]
xhci: fix address device
Zero-initialize the set-address dummy USBPacket,
also add buffer to avoid sanity checks triggering.
https://bugzilla.redhat.com/show_bug.cgi?id=929019
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Thu, 21 Mar 2013 09:59:05 +0000 (10:59 +0100)]
xhci: use slotid as device address
Is good enougth for unique device addresses and avoids the need for any
state for device addressing. Makes live migration support easier. Also
makes device->slot lookups trivial.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Fri, 5 Apr 2013 12:55:28 +0000 (14:55 +0200)]
xhci: fix portsc writes
Check for port reset first and skip everything else then.
Add sanity checks for PLS updates.
Add PLC notification when entering PLS_U0 state.
This gets host-initiated port resume going on win8.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Fri, 5 Apr 2013 09:29:14 +0000 (11:29 +0200)]
xhci: add xhci_cap_write
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Fri, 5 Apr 2013 11:56:53 +0000 (13:56 +0200)]
xhci: remove leftover debug printf
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede [Fri, 5 Apr 2013 09:30:25 +0000 (11:30 +0200)]
usb-serial: Remove double call to qemu_chr_add_handlers( NULL )
usb-serial has a qdev chardev property, and hw/qdev-properties-system.c
already contains:
static void release_chr(Object *obj, const char *name, void *opaque)
{
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
CharDriverState **ptr = qdev_get_prop_ptr(dev, prop);
CharDriverState *chr = *ptr;
if (chr) {
qemu_chr_add_handlers(chr, NULL, NULL, NULL, NULL);
qemu_chr_fe_release(chr);
}
}
So doing the qemu_chr_add_handlers(s->cs, NULL, NULL, NULL, NULL); from
the usb handle_destroy function too will lead to it being done twice.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede [Fri, 5 Apr 2013 09:30:24 +0000 (11:30 +0200)]
spice-qemu-char: vmc_write: Don't write more bytes then we're asked too
This one took me eons to debug, but I've finally found it now, oh well.
The usage of the MIN macro in this line:
last_out = MIN(len, qemu_chr_be_can_write(scd->chr));
Causes qemu_chr_be_can_write to be called *twice*, since the MIN macro
evaluates its arguments twice (bad MIN macro, bad!). And the result of
the call can change between the 2 calls since the guest may have consumed
some data from the virtio ringbuffer between the calls!
When this happens it is possible for qemu_chr_be_can_write to return less
then len in the call made for the comparision, and then to return more then
len in the actual call for the return-value of MIN, after which we will end
up writing len data + some extra garbage, not good.
This patch fixes this by only calling qemu_chr_be_can_write once.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Alon Levy [Fri, 5 Apr 2013 09:30:23 +0000 (11:30 +0200)]
spice-qemu-char: Remove intermediate buffer
virtio-serial's buffer is valid when it calls us, and we don't
access it otherwise: vmc_read is only called in response to wakeup,
or else we set datalen=0 and throttle. Then vmc_read is called back,
we return 0 (not accessing the buffer) and set the timer to unthrottle.
Also make datalen int and not ssize_t (to fit spice_chr_write signature).
HdG: Update to apply to spice-qemu-char with new gio-channel based
flowcontrol support.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede [Fri, 5 Apr 2013 09:30:22 +0000 (11:30 +0200)]
spice-qemu-char: Add watch support
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede [Fri, 5 Apr 2013 09:30:21 +0000 (11:30 +0200)]
spice-qemu-char: Remove #ifdef-ed code for old spice-server compat
We now require spice-server to be >= 0.12.0 so this is no longer needed.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede [Fri, 5 Apr 2013 09:30:20 +0000 (11:30 +0200)]
virtio-console: Remove any pending watches on close
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Hans de Goede [Fri, 5 Apr 2013 09:30:19 +0000 (11:30 +0200)]
virtio-console: Also throttle when less was written then requested
This is necessary so that we get properly woken up to write the rest.
This patch also changes the len argument to the have_data callback, to
avoid doing an unsigned signed comparison.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Alon Levy [Wed, 13 Mar 2013 15:58:35 +0000 (17:58 +0200)]
spice: (32 bit only) fix surface cmd tracking destruction
No change for 64 bit arches, but for 32 bit previously we zeroed half
the surfaces cmd array, instead of all of it.
Signed-off-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Thu, 4 Apr 2013 08:15:34 +0000 (10:15 +0200)]
qxl: add 2000x2000 and 2048x2048 video modes
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:34:50 +0000 (10:34 +1000)]
m25p80: Add debug message for no bdrv
If there is no backing bdrv, let the debugging developer know about it.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:34:11 +0000 (10:34 +1000)]
m25p80.c: Multiple debug verbosity levels
The debug printfs on every page program/read is extremely verbose. Add
a second level of debug for this.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:33:32 +0000 (10:33 +1000)]
m25p80: Convert guest errors to LOG_GUEST_ERROR
Some of the debug printfs in m25p80 are really guest errors.
Changed over to qemu_log_mask(LOG_GUEST_ERROR accordingly.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:32:53 +0000 (10:32 +1000)]
m25p80: Fix debug messages.
Some dodgy casts were making a mess of these msgs.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:28:35 +0000 (10:28 +1000)]
stream: Remove app argument hack
The uint32_t *app argument doesn't exist in real hardware. It was a hack in
xilinx_axidma/enet to fake the (secondary) control stream connection. Removed
the argument and added the second stream to axienet/dma.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:27:55 +0000 (10:27 +1000)]
xilinx_axienet/dma: Implement rx path flow control
Implement flow control for the RX data path from xilinx_axienet->xilinx_axidma.
On short return from axidma, then ethernet sets up the notify callback to resume
transfer from where it left off.
This also allows the ethernet to track whether there is an in progress transaction
and return false from ethernet can_receive() as appropriate.
If the DMA backs up or is disabled it waits for enablement. When the rx stream IO
region is touched, the can_push() notify function is called if set.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:27:16 +0000 (10:27 +1000)]
stream: Add flow control API
Add basic flow control to stream. A stream slave may return short, indicating
that it is not capable of accepting any more data at the present time. Polling
or a callback can be used via the can_push() function to determine when the
slave can receive again.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:26:37 +0000 (10:26 +1000)]
xilinx_axidma: Fix rx/tx halted bit.
If there is no DMA buffer descriptor, the DMA halts, not idles.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:25:57 +0000 (10:25 +1000)]
xilinx_axidma: Create Proxy object for stream
Create a separate child object to proxy the stream slave connection. This is
setup for future work where a second stream slave connection is needed. The
new child object is created at qdev init time and is linked back to the parent
(the ethernet device itself) automatically.
Stream slave masters differentiate which slave connection they are connected to
by linking to the proxy object rather than the parent.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:25:18 +0000 (10:25 +1000)]
xilinx_axienet: Create Proxy object for stream
Create a separate child object to proxy the stream slave connection. This is
setup for future work where a second stream slave connection is needed. The
new child object is created at qdev init time and is linked back to the parent
(the ethernet device itself) automatically.
Stream slave masters differentiate which slave connection they are connected to
by linking to the proxy object rather than the parent.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:24:39 +0000 (10:24 +1000)]
petalogix_ml605_mmu: Attach ethernet to machine
Explicitly make the ethernet a child of the machine. This is needed to set
and use links pre-realize. Also makes the ethernet initialization consistent
with its peer DMA.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:23:59 +0000 (10:23 +1000)]
petalogix_ml605_mmu: Fix machine node attachment
Just attach devices straight to the root machine node, rather than the
"unattached node"
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:23:20 +0000 (10:23 +1000)]
xilinx_axidma: converted init->realize
The prescribed transition from SysBusDevice::init to Device::realize. I'm going
with Andreas suggestion to move the sysbus foo to Object::init for early IRQ
visibility.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:22:41 +0000 (10:22 +1000)]
xilinx_axidma: Register reset properly
Register the reset function as the Device::reset function rather than
explicitly call it from the sysbus::init.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:22:02 +0000 (10:22 +1000)]
xilinx_axidma: Defined and use type cast macro
Standard QOM cast macro. Replaces usages of FROM_SYSBUS
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:21:23 +0000 (10:21 +1000)]
xilinx_axidma: typedef XilinxAXIDMA struct
Typedef xilinx_axidma's object state struct to shorten the repeated usages of
struct XilinxAXIDMA.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:20:44 +0000 (10:20 +1000)]
xilinx_axienet: converted init->realize
The prescribed transition from SysBusDevice::init to Device::realize. Im going
with Andreas suggestion to move the sysbus foo to Object::init for early IRQ
visibility.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:20:06 +0000 (10:20 +1000)]
xilinx_axienet: Register reset properly
Register the reset function and the Device::reset function rather than
explicitly call it from the sysbus::init.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:19:27 +0000 (10:19 +1000)]
xilinx_axienet: Defined and use type cast macro
Standard QOM cast macro. Replaces usages of FROM_SYSBUS
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Peter Crosthwaite [Tue, 16 Apr 2013 00:18:47 +0000 (10:18 +1000)]
xilinx_axienet: typedef XilinxAXIEnet struct
Typedef xilinx_axienets object state struct to shorten the repeated usages of
struct XilinxAXIEnet.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Gerd Hoffmann [Tue, 19 Mar 2013 15:59:58 +0000 (16:59 +0100)]
qxl: register QemuConsole for secondary cards
Hook secondary qxl cards properly into the qemu console subsystem.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Wed, 20 Mar 2013 08:11:41 +0000 (09:11 +0100)]
gtk: custom cursor support
Makes gtk ui play nicely with qxl (and vmware_svga)
as you can actually see your pointer now ;)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Fri, 15 Mar 2013 14:45:54 +0000 (15:45 +0100)]
console: allow pinning displaychangelisteners to consoles
DisplayChangeListener gets a new QemuConsole field, which can be set to
non-NULL before registering. This will pin the QemuConsole, so that
particular DisplayChangeListener will not follow console switches.
spice+gtk (which don't support text console input anyway) are switched
over to be pinned to console 0, which usually is the graphical display.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Thu, 14 Mar 2013 13:27:08 +0000 (14:27 +0100)]
console: add qemu_console_is_*
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Tue, 19 Mar 2013 14:01:02 +0000 (15:01 +0100)]
xen: re-enable refresh interval reporting for xenfb
xenfb informs the guest about the gui refresh interval so it can avoid
pointless work. That logic was temporarely disabled for the
DisplayState reorganization. Restore it now, with a proper interface
for it.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Fri, 15 Mar 2013 10:53:47 +0000 (11:53 +0100)]
qxl: add 4k + 8k resolutions
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Thu, 14 Mar 2013 10:56:16 +0000 (11:56 +0100)]
console: gui timer fixes
Make gui update rate adaption code in gui_update() actually work.
Sprinkle in a tracepoint so you can see the code at work. Remove
the update rate adaption code in vnc and make vnc simply use the
generic bits instead.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Wed, 13 Mar 2013 13:04:18 +0000 (14:04 +0100)]
console: add GraphicHwOps
Pass a single GraphicHwOps struct pointer to graphic_console_init,
instead of a bunch of function pointers.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Wed, 13 Mar 2013 11:25:25 +0000 (12:25 +0100)]
console: make DisplayState private to console.c
With gui_* being moved to console.c nobody outside console.c needs
access to DisplayState fields any more. Make the struct private.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Wed, 13 Mar 2013 11:17:13 +0000 (12:17 +0100)]
console: move gui_update+gui_setup_refresh from vl.c into console.c
Pure code motion, no functional changes.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Wed, 13 Mar 2013 09:14:52 +0000 (10:14 +0100)]
console: zap g_width + g_height
We have a surface per QemuConsole now, so there is no need to keep
track of the QemuConsole size any more as we can query the surface
size directly at any time.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Gerd Hoffmann [Tue, 12 Mar 2013 13:48:31 +0000 (14:48 +0100)]
console: simplify screendump
Screendumps are alot simpler as we can update non-active
QemuConsoles now. So we only need to update the QemuConsole
we want write out, then dump the DisplaySurface content into
a ppm file. Done.
No console switching needed. No special support code in the
gfx card emulation needed. Zap it all. Also move ppm_save
out of the vga code and next to the qmp_screendump function.
For now screen dumping is limited to console #0 (like it used
to be), even though it is dead simple to extend it to other
consoles. I wanna finish the console cleanup before setting
new qapi interfaces into stone.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: Igor Mitsyanko <i.mitsyanko@gmail.com>
Gerd Hoffmann [Tue, 12 Mar 2013 13:39:22 +0000 (14:39 +0100)]
console: give each QemuConsole its own DisplaySurface
Go away from the global DisplaySurface, give one to each QemuConsole
instead. With this patch applied it is possible to call
graphics_hw_* functions with qemu consoles which are not the current
foreground console.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>