qemu
15 years agoRemove dead AIO code for win32
aliguori [Sun, 29 Mar 2009 20:54:17 +0000 (20:54 +0000)]
Remove dead AIO code for win32

AFAIK, it's never been enabled and hasn't even compiled in ages.  Remove the
code to avoid confusion.  If someone ever decides to fix it, they can get at
the old version in RCS history.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6958 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_movcf_*()
aurel32 [Sun, 29 Mar 2009 15:45:02 +0000 (15:45 +0000)]
target-mips: optimize gen_movcf_*()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6957 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_movci()
aurel32 [Sun, 29 Mar 2009 15:44:50 +0000 (15:44 +0000)]
target-mips: optimize gen_movci()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6956 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_compute_branch1()
aurel32 [Sun, 29 Mar 2009 15:44:34 +0000 (15:44 +0000)]
target-mips: optimize gen_compute_branch1()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6955 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMisc scsi disk/cdrom fixes/improvements 4/4
blueswir1 [Sun, 29 Mar 2009 15:40:59 +0000 (15:40 +0000)]
Misc scsi disk/cdrom fixes/improvements 4/4

Implement Test Unit Ready command (return NOT READY as above
if !bdrv_is_inserted(...))

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6954 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomisc scsi disk/cdrom fixes/improvements 3/4
blueswir1 [Sun, 29 Mar 2009 15:40:42 +0000 (15:40 +0000)]
misc scsi disk/cdrom fixes/improvements 3/4

Add asc 0x3a, ascq 0: Medium not present to NOT READY sense
(needed to keep some guests from retrying causing long sleeps in the
kernel)

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6953 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomisc scsi disk/cdrom fixes/improvements 2/4
blueswir1 [Sun, 29 Mar 2009 15:40:21 +0000 (15:40 +0000)]
misc scsi disk/cdrom fixes/improvements 2/4

Implement cdrom load/eject functionality (Start Stop Unit command)

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6952 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomisc scsi disk/cdrom fixes/improvements 1/4
blueswir1 [Sun, 29 Mar 2009 15:39:59 +0000 (15:39 +0000)]
misc scsi disk/cdrom fixes/improvements 1/4

Use correct sector size for cdrom Read TOC command

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6951 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: don't map FP registers as TCG global variables
aurel32 [Sun, 29 Mar 2009 15:39:08 +0000 (15:39 +0000)]
target-mips: don't map FP registers as TCG global variables

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6950 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: fix divu instruction
aurel32 [Sun, 29 Mar 2009 15:36:47 +0000 (15:36 +0000)]
target-mips: fix divu instruction

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6949 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotcg: fix _tl aliases for divu/remu
aurel32 [Sun, 29 Mar 2009 14:08:54 +0000 (14:08 +0000)]
tcg: fix _tl aliases for divu/remu

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6948 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: Explain why the whole TLB is flushed on SR write
aurel32 [Sun, 29 Mar 2009 13:36:32 +0000 (13:36 +0000)]
target-ppc: Explain why the whole TLB is flushed on SR write

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6947 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix hxtool eating backslash sequences for sh != bash
blueswir1 [Sun, 29 Mar 2009 10:50:43 +0000 (10:50 +0000)]
Fix hxtool eating backslash sequences for sh != bash

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6946 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix hxtool eating backslash sequences
blueswir1 [Sun, 29 Mar 2009 09:06:43 +0000 (09:06 +0000)]
Fix hxtool eating backslash sequences

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6945 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agofix format string warnings in block-qcow2.c (Christoph Hellwig)
aliguori [Sun, 29 Mar 2009 01:31:56 +0000 (01:31 +0000)]
fix format string warnings in block-qcow2.c (Christoph Hellwig)

Recent patches added two compiler warnings about the format string
usage in qcow_read_extensions.  One is printing a uint64_t using
%lu which is incorrect on many platforms as it can be a unsigned
long long, the second one is printing the result of sizeof as
%lu, but it is a size_t so it needs to be printed using %zu.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6944 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agocheck for bs->drv in bdrv_flush (Christoph Hellwig)
aliguori [Sun, 29 Mar 2009 01:31:51 +0000 (01:31 +0000)]
check for bs->drv in bdrv_flush (Christoph Hellwig)

All the bdrv_ helpers should check for bs->drv being zero as that means
there is no backend image open.  bdrv_flush fails to perform that check
and can thus cause NULL pointer dereferences.

Found using qemu-io.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6943 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoremove dead code in bdrv_check_request (Christoph Hellwig)
aliguori [Sun, 29 Mar 2009 01:31:48 +0000 (01:31 +0000)]
remove dead code in bdrv_check_request (Christoph Hellwig)

Remove code dealing with negative sector numbers for byte access in
bdrv_check_request as sector numbers can't ever be negative.

Previously we supported negative sector counts for byte access, but
never sector numbers.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6942 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize write to env->hflags
aurel32 [Sun, 29 Mar 2009 01:28:29 +0000 (01:28 +0000)]
target-mips: optimize write to env->hflags

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6941 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_muldiv()
aurel32 [Sun, 29 Mar 2009 01:19:31 +0000 (01:19 +0000)]
target-mips: optimize gen_muldiv()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6940 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotcg: add _tl aliases for div/divu/rem/remu
aurel32 [Sun, 29 Mar 2009 01:19:22 +0000 (01:19 +0000)]
tcg: add _tl aliases for div/divu/rem/remu

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6939 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_HILO()
aurel32 [Sun, 29 Mar 2009 01:19:12 +0000 (01:19 +0000)]
target-mips: optimize gen_HILO()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6938 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_trap()
aurel32 [Sun, 29 Mar 2009 01:19:02 +0000 (01:19 +0000)]
target-mips: optimize gen_trap()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6937 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_compute_branch()
aurel32 [Sun, 29 Mar 2009 01:18:52 +0000 (01:18 +0000)]
target-mips: optimize gen_compute_branch()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6936 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: don't mix result and arguments in gen_op_*
aurel32 [Sun, 29 Mar 2009 01:18:43 +0000 (01:18 +0000)]
target-mips: don't mix result and arguments in gen_op_*

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6935 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: gen_bshfl()
aurel32 [Sun, 29 Mar 2009 01:18:34 +0000 (01:18 +0000)]
target-mips: gen_bshfl()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6934 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_mul_vr54xx()
aurel32 [Sun, 29 Mar 2009 01:18:24 +0000 (01:18 +0000)]
target-mips: optimize gen_mul_vr54xx()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6933 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: optimize gen_cl()
aurel32 [Sun, 29 Mar 2009 01:18:16 +0000 (01:18 +0000)]
target-mips: optimize gen_cl()

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6932 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-ppc: avoid nop to override next instruction
aurel32 [Sun, 29 Mar 2009 01:18:03 +0000 (01:18 +0000)]
target-ppc: avoid nop to override next instruction

While searching PC, always store the pc of a new instruction.
Instructions that didn't generate tcg code (such as nop) prevented the
next one to be referenced.

Based on patch for target-alpha, r6930.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6931 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: bug fix: avoid nop to override next instruction
aurel32 [Sun, 29 Mar 2009 01:04:39 +0000 (01:04 +0000)]
target-alpha: bug fix: avoid nop to override next instruction

While searching PC, always store the pc of a new instruction.
Instructions that didn't generate tcg code (such as nop) prevented the next
one to be referenced.

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6930 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: remove PALCODE_ declarations (unused).
aurel32 [Sun, 29 Mar 2009 00:22:12 +0000 (00:22 +0000)]
target-alpha: remove PALCODE_ declarations (unused).

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6929 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: add instruction name in comments for hw_ld opcode.
aurel32 [Sun, 29 Mar 2009 00:22:01 +0000 (00:22 +0000)]
target-alpha: add instruction name in comments for hw_ld opcode.

Make code slightly easier to read.
Also unused hw_ld opcodes now generate an invalid opc fault.

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6928 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoDocument which IPR are used by 21264
aurel32 [Sun, 29 Mar 2009 00:21:43 +0000 (00:21 +0000)]
Document which IPR are used by 21264

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6927 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: tb_flush helper should flush the tb (and not the tlb).
aurel32 [Sun, 29 Mar 2009 00:14:16 +0000 (00:14 +0000)]
target-alpha: tb_flush helper should flush the tb (and not the tlb).

Looks to be a typo fix.

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6926 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: fix temp free for hw_st
aurel32 [Sun, 29 Mar 2009 00:14:06 +0000 (00:14 +0000)]
target-alpha: fix temp free for hw_st

No need to stop translation after hw_st.

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6925 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: fix bug: integer conditional branch offset is 21 bits wide.
aurel32 [Sun, 29 Mar 2009 00:13:56 +0000 (00:13 +0000)]
target-alpha: fix bug: integer conditional branch offset is 21 bits wide.

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6924 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: Fix bug: do not mask address LSBs for ldwu.
aurel32 [Sun, 29 Mar 2009 00:13:47 +0000 (00:13 +0000)]
target-alpha: Fix bug: do not mask address LSBs for ldwu.

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6923 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-alpha: Fix bug: palcode is at least 6 bits.
aurel32 [Sun, 29 Mar 2009 00:13:38 +0000 (00:13 +0000)]
target-alpha: Fix bug: palcode is at least 6 bits.

Signed-off-by: Tristan Gingold <gingold@adacore.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6922 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agobuild system: silence gdbstub-xml.c generation
aurel32 [Sat, 28 Mar 2009 23:46:00 +0000 (23:46 +0000)]
build system: silence gdbstub-xml.c generation

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6921 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotcg/README: fix description of bswap32_i32/i64
aurel32 [Sat, 28 Mar 2009 23:27:30 +0000 (23:27 +0000)]
tcg/README: fix description of bswap32_i32/i64

Thanks to Stuart Brady for the notice.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6920 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-sh4: r2d --append option support
aurel32 [Sat, 28 Mar 2009 23:18:47 +0000 (23:18 +0000)]
target-sh4: r2d --append option support

Remove qemu_ram_alloc(SDRAM_BASE) and related changes.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6919 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agohw/eeprom93xx.c: support 93xx EEPROMs with more than 255 words
aurel32 [Sat, 28 Mar 2009 23:14:52 +0000 (23:14 +0000)]
hw/eeprom93xx.c: support 93xx EEPROMs with more than 255 words

In the head of eeprom93xx.c we promise to support chips with 256 words,
but store the size in an unsigned byte. This patch replaces this with an
16 bit variable and changes the load/store code accordingly (introducing a
new version).

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6918 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agohw/eeprom93xx.c: substitute structure dump with discrete dump in eeprom_save/load
aurel32 [Sat, 28 Mar 2009 23:14:41 +0000 (23:14 +0000)]
hw/eeprom93xx.c: substitute structure dump with discrete dump in eeprom_save/load

The EEPROM 93xx device used to dump a C structure to the migration stream.
This structure includes mixed 8 and 16bit variables and is thus subject to
compiler dependent padding. Replace this with discrete dumps of each member
(and add a padding byte to ensure compatibility, a version update is
included in the following patch).

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6917 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-sh4: r2d --append option support
aurel32 [Sat, 28 Mar 2009 23:14:32 +0000 (23:14 +0000)]
target-sh4: r2d --append option support

Add linux kernel command line ("--append" option) support.
Fix kernel loading address to appropriate position when --append used.
Using --kernel but --append case is left untouched for backward compatibility.

This also change the host<->SH address mapping for r2d to
 host addr == phys_ram_base + SH addr.

Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6916 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: fix FPU in 64-bit mode
aurel32 [Sat, 28 Mar 2009 22:22:50 +0000 (22:22 +0000)]
target-mips: fix FPU in 64-bit mode

TCG does not allow the same memory location to be aliased in two
different global registers, fpu_fpr32 and fpu_fpr64.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6915 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotarget-mips: implement FPU Flush-To-Zero mode
aurel32 [Sat, 28 Mar 2009 22:22:40 +0000 (22:22 +0000)]
target-mips: implement FPU Flush-To-Zero mode

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6914 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agogdbstub: Allow re-instantiation (Jan Kiszka)
aliguori [Sat, 28 Mar 2009 18:05:53 +0000 (18:05 +0000)]
gdbstub: Allow re-instantiation (Jan Kiszka)

[ Note: depends on char closing fixes ]

Properly clean up the gdbstub when the user tries to re-open it
(possibly under a different address). Moreover, allow to shut it down
from the monitor via 'gdbserver none'.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6913 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agochar: Fix closing of various char devices (Jan Kiszka)
aliguori [Sat, 28 Mar 2009 17:58:14 +0000 (17:58 +0000)]
char: Fix closing of various char devices (Jan Kiszka)

This patch fixes several issues around closing char devices. Affected
were pty (timer was left behind, even running), udp (no close handling
at all) and tcp (missing async IO handler cleanup). The bugs either
caused segfaults or stalled the qemu process. So far, hot-unplugging USB
serial adapters suffered from this.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6911 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu-img: adding a "-F base_fmt" option to "qemu-img create -b" (Uri Lublin)
aliguori [Sat, 28 Mar 2009 17:55:19 +0000 (17:55 +0000)]
qemu-img: adding a "-F base_fmt" option to "qemu-img create -b" (Uri Lublin)

If the user specifies the backing file format,
then when opening the backing file, there is no need
to probe the (backing file) image to figure out its format.

This follows my previous patches implementing bdrv_create2
which keeps (for qcow2 only) the backing file format
as a qcow2-extension

Suggested by Daniel P. Berrange.

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6910 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock-qcow2: keep backing file format in a qcow2 extension (Uri Lublin)
aliguori [Sat, 28 Mar 2009 17:55:14 +0000 (17:55 +0000)]
block-qcow2: keep backing file format in a qcow2 extension (Uri Lublin)

Use a qcow2 extension to keep the backing file format.

By keeping the backing file format, we can:
1. Provide a way to know the backing file format without probing
   it (setting the format at creation time).
2. Enable using qcow2 format over host block devices.
   (only if the user specifically asks for it, by providing the format
   at creation time).

Also fixes a security flaw found by Daniel P. Berrange on [1]
which summarizes: "Autoprobing: just say no."

[1] http://lists.gnu.org/archive/html/qemu-devel/2008-12/msg01083.html

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6909 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoblock: support known backing format for image create and open (Uri Lublin)
aliguori [Sat, 28 Mar 2009 17:55:10 +0000 (17:55 +0000)]
block: support known backing format for image create and open (Uri Lublin)

Added a backing_format field to BlockDriverState.
Added bdrv_create2 and drv->bdrv_create2 to create an image with
a known backing file format.
Upon bdrv_open2 if backing format is known use it, instead of
probing the (backing) image.

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6908 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoIntroducing qcow2 extensions (Uri Lublin)
aliguori [Sat, 28 Mar 2009 17:55:06 +0000 (17:55 +0000)]
Introducing qcow2 extensions (Uri Lublin)

Qcow2 extensions are build of magic (id) len (in bytes) and data.
They reside right after the qcow2 header.
If a backing filename exists it follows the qcow2 extension (if exist)

Qcow2 extensions are read upon image open.
Qcow2 extensions are identified by their magic.
Unknown qcow2 extensions (unknown magic) are skipped.
A Special magic of 0 means end-of-qcow2-extensions.

In this patchset, to be used to keep backing file format.

Based on a work done by Shahar Frank <sfrank@redhat.com>.

Signed-off-by: Uri Lublin <uril@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6907 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm: Drop kvm_patch_opcode_byte (Jan Kiszka)
aliguori [Sat, 28 Mar 2009 17:51:40 +0000 (17:51 +0000)]
kvm: Drop kvm_patch_opcode_byte (Jan Kiszka)

As cpu_memory_rw_debug is now capable of modifying ROM, we can drop our
own patch function.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6906 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoROM write access for debugging (Jan Kiszka)
aliguori [Sat, 28 Mar 2009 17:51:36 +0000 (17:51 +0000)]
ROM write access for debugging (Jan Kiszka)

Enhance cpu_memory_rw_debug so that it can write even to ROM regions.
This allows to modify ROM via gdb (I see no point in denying this to the
user), and it will enable us to drop kvm_patch_opcode_byte().

Credits go to Avi for suggesting this.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6905 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse the DMA api to map virtio elements.
aliguori [Sat, 28 Mar 2009 17:46:18 +0000 (17:46 +0000)]
Use the DMA api to map virtio elements.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6904 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovirtio-blk: use generic vectored I/O APIs (Christoph Hellwig)
aliguori [Sat, 28 Mar 2009 17:46:14 +0000 (17:46 +0000)]
virtio-blk: use generic vectored I/O APIs (Christoph Hellwig)

Use the generic bdrv_aio_readv/bdrv_aio_writev APIs instead of linearizing
buffers directly.  This enables using the future native preadv/pwritev
support.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6903 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoadd qemu_iovec_init_external (Christoph Hellwig)
aliguori [Sat, 28 Mar 2009 17:46:10 +0000 (17:46 +0000)]
add qemu_iovec_init_external (Christoph Hellwig)

Allow to initialize a QEMUIOVector from an externally allocated iovec.
qiov->nalloc is initialized to -1 to indicate external storage for qiov->iov
and all functions dealing with memory management assert on the iovec beeing
an internally managed first.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6902 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoClean some PCI defines (Stefan Weil)
aliguori [Sat, 28 Mar 2009 17:29:07 +0000 (17:29 +0000)]
Clean some PCI defines (Stefan Weil)

this patch adds some more defines from linux/pci_regs.h to
hw/pci.h. There is now no longer a need to define them in
eepro100.c, so they were removed there.

Some defines from linux/pci_regs.h had similar, but not
the same defines in hw/pci.h (PCI_REVISION_ID / PCI_REVISION,
PCI_SUBSYSTEM_VENDOR_ID / PCI_SUBVENDOR_ID,
PCI_SUBSYSTEM_ID / PCI_SUBDEVICE_ID).

I suggest to use the "standard" from linux/pci_regs.h and
replace the "old" Qemu ones. To facilitate the migration,
my patch does not remove the old defines but marks them
as obsolete. After a migration to the "standard" defines,
pci.h could use linux/pci_regs.h which is far more complete.

The patch is needed for an updated maintainer version of
hw/eepro100.c which I'd like to see in Qemu stable.

 * Remove declarations already declared in header file from eepro100.c
 * Add missing declarations from pci_regs.h to pci.h
 * Mark "non-standard" declarations in pci.h as obsolete

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6901 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix monitor command (screendump) (Stefan Weil)
aliguori [Sat, 28 Mar 2009 17:29:02 +0000 (17:29 +0000)]
Fix monitor command (screendump) (Stefan Weil)

starting with r6839, the monitor command 'screendump'
raises a nullpointer memory access which crashs Qemu.

Fix crash when calling screendump from monitor.

This was a regression introduced with r6839:
DisplayAllocator interface (Stefano Stabellini)

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6900 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRemove nodisk_ok machine feature (Jan Kiszka)
aliguori [Sat, 28 Mar 2009 17:28:58 +0000 (17:28 +0000)]
Remove nodisk_ok machine feature (Jan Kiszka)

All archs have some kind of firmware to load and can be fine with it
already. So there is not much use in enforcing the presence of a disk.
If the system setup requires one, the user will notice it anyway once
the firmware/bios fails to boot from it.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6899 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomusicpal: Fix regression caused by 6839 (Jan Kiszka)
aliguori [Sat, 28 Mar 2009 17:28:53 +0000 (17:28 +0000)]
musicpal: Fix regression caused by 6839 (Jan Kiszka)

Pass correct DisplayState field to is_surface_bgr().

Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6898 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agogdbstub: Drop redundant memset after qemu_mallocz (Jan Kiszka)
aliguori [Sat, 28 Mar 2009 17:28:49 +0000 (17:28 +0000)]
gdbstub: Drop redundant memset after qemu_mallocz (Jan Kiszka)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6897 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoget roms more room. (Glauber Costa)
aliguori [Sat, 28 Mar 2009 17:28:45 +0000 (17:28 +0000)]
get roms more room. (Glauber Costa)

This patch increases by 50 % the size available for option roms.
The main motivator is that some roms grew bigger than the 64k we
currently allocate for them (Hey, it's 2009!)

One example is the gpxe project, that produces some roms with 69k,
70k, etc. The space proposed by this patch actually makes it as
big as 84k. Probably still a fit for some time.

But there is no free lunch. This space must come from somewhere,
and we take it from vga rom space. Currently, our vga roms are
around 35k in size. With this patch, option rom space will begin
just after vga ends, aligned to the next 2k boundary.

Technicaly, we could do the same with the uper space (the bios itself),
but since bochs bios is already 128 k in size, I don't see an
urgent need to do it.

[ fix case for vgabioses smaller than 30k, by Carl-Daniel Hailfinger ]

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6896 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agonew scsi-generic abstraction, use SG_IO (Christoph Hellwig)
aliguori [Sat, 28 Mar 2009 17:28:41 +0000 (17:28 +0000)]
new scsi-generic abstraction, use SG_IO (Christoph Hellwig)

Okay, I started looking into how to handle scsi-generic I/O in the
new world order.

I think the best is to use the SG_IO ioctl instead of the read/write
interface as that allows us to support scsi passthrough on disk/cdrom
devices, too.  See Hannes patch on the kvm list from August for an
example.

Now that we always do ioctls we don't need another abstraction than
bdrv_ioctl for the synchronous requests for now, and for asynchronous
requests I've added a aio_ioctl abstraction keeping it simple.

Long-term we might want to move the ops to a higher-level abstraction
and let the low-level code fill out the request header, but I'm lazy
enough to leave that to the people trying to support scsi-passthrough
on a non-Linux OS.

Tested lightly by issuing various sg_ commands from sg3-utils in a guest
to a host CDROM device.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6895 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoDocument sun ID PROM contents
blueswir1 [Sat, 28 Mar 2009 16:17:50 +0000 (16:17 +0000)]
Document sun ID PROM contents

Signed-off-by: Robert Reif <reif@earthlink.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6894 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix DMA API when handling an immediate error from block layer (Avi Kivity)
aliguori [Sat, 28 Mar 2009 16:11:25 +0000 (16:11 +0000)]
Fix DMA API when handling an immediate error from block layer (Avi Kivity)

The block layer may signal an immediate error on an asynchronous request
by returning NULL.  The DMA API did not handle this correctly, returning
an AIO request which would never complete (and which would crash if
cancelled).

Fix by detecting the failure and propagating it.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6893 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix vectored aio bounce handling immediate errors (Avi Kivity)
aliguori [Sat, 28 Mar 2009 16:11:20 +0000 (16:11 +0000)]
Fix vectored aio bounce handling immediate errors (Avi Kivity)

If a bounced vectored aio fails immediately (the inner aio submission
returning NULL) then the bounce handler erronously returns an aio
request which will never be completed (and which crashes when cancelled).

Fix by detecting that the inner request has failed and propagating the
error.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6892 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agohost_device_remove: remove incorrect check for device name (Eduardo Habkost)
aliguori [Sat, 28 Mar 2009 15:58:58 +0000 (15:58 +0000)]
host_device_remove: remove incorrect check for device name (Eduardo Habkost)

There is no need to check for valid prefixes on the the device name
when removing it. If the device name is found on the vlan client list,
it can be removed, regardless of the prefix used on its name.

To reproduce the bug, just run this on the monitor:

 (qemu) host_net_add user name=foobar
 (qemu) host_net_remove 0 foobar
 invalid host network device foobar
 (qemu)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6891 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFreeBSD host physical cdrom fixes
blueswir1 [Sat, 28 Mar 2009 08:37:13 +0000 (08:37 +0000)]
FreeBSD host physical cdrom fixes

This improves physical cdrom support on FreeBSD hosts to be almost as
good as on Linux, with the only notable exception that you still need to
either have the guest itself eject the disc if you want to take it
out/change it, or do a change command in the monitor after taking out
a disc in case a guest cannot eject it itself - otherwise the guest may
continue using state (like size) of the old disc.

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6888 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix warning in vl.c
blueswir1 [Sat, 28 Mar 2009 08:24:44 +0000 (08:24 +0000)]
Fix warning in vl.c

vl.c calls dma_helper_init, so it needs to include dma.h to get a
definition for it, otherwise we get compiler warnings like:

/home/hch/work/qemu/vl.c: In function 'main':
/home/hch/work/qemu/vl.c:5518: warning: implicit declaration of function 'dma_helper_init'

Signed-off-by: Christoph Hellwig <hch@lst.de>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6887 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix out of tree compilation
blueswir1 [Sat, 28 Mar 2009 08:14:42 +0000 (08:14 +0000)]
Fix out of tree compilation

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6886 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix compile problems with r6884
blueswir1 [Sat, 28 Mar 2009 08:13:56 +0000 (08:13 +0000)]
Fix compile problems with r6884

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6885 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoSyncing documentation vs. -help vs. qemu_options table
blueswir1 [Sat, 28 Mar 2009 06:44:27 +0000 (06:44 +0000)]
Syncing documentation vs. -help vs. qemu_options table

Try to keep documentation about command line switches, -help text and
qemu_options table synchronized.

In true Qemu tradition, an include file is generated from single .hx file
containing all relevant information in one place. The include file is
parsed once for getting the enums, another time for getopt tables and
hird time for help messages. Texi documentation for the options is
generated from the same .hx file.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6884 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix absolute mouse events generated by SDL frontend.
balrog [Sat, 21 Mar 2009 01:09:16 +0000 (01:09 +0000)]
Fix absolute mouse events generated by SDL frontend.

In r6839 ("DisplayAllocator interface") the "width" and "height" globals
stopped ever being assigned.  Note that last time absolute input stopped
working was for the same reason.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6875 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMove block dma helpers aiocb to store dma state (Avi Kivity)
aliguori [Fri, 20 Mar 2009 18:26:16 +0000 (18:26 +0000)]
Move block dma helpers aiocb to store dma state (Avi Kivity)

Use the dedicated dma aiocb to store intermediate state for dma block
transactions.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6874 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse vectored aiocb storage to store vector translation state (Avi Kivity)
aliguori [Fri, 20 Mar 2009 18:26:12 +0000 (18:26 +0000)]
Use vectored aiocb storage to store vector translation state (Avi Kivity)

Now that we have a dedicated acb pool for vector translation acbs, we can
store the vector translation state in the acbs instead of in an external
structure.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6873 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoImplement cancellation method for dma async I/O (Avi Kivity)
aliguori [Fri, 20 Mar 2009 18:26:07 +0000 (18:26 +0000)]
Implement cancellation method for dma async I/O (Avi Kivity)

Move the dma helpers to a private aio pool, and implement a cancellation
method for them.  Should prevent issues when cancelling I/O while dma is
in progress.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6872 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoConvert vectored aio emulation to use a dedicated pool (Avi Kivity)
aliguori [Fri, 20 Mar 2009 18:26:03 +0000 (18:26 +0000)]
Convert vectored aio emulation to use a dedicated pool (Avi Kivity)

This allows us to remove a hack in the vectored aio cancellation code.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6871 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRefactor aio callback allocation to use an aiocb pool (Avi Kivity)
aliguori [Fri, 20 Mar 2009 18:25:59 +0000 (18:25 +0000)]
Refactor aio callback allocation to use an aiocb pool (Avi Kivity)

Move the AIOCB allocation code to use a dedicate structure, AIOPool.  AIOCB
specific information, such as the AIOCB size and cancellation routine, is
moved into the pool.

At present, there is exactly one pool per block format driver, maintaining
the status quo.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6870 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovirtio: Allow guest to defer VIRTIO_F_NOTIFY_ON_EMPTY (Alex Williamson)
aliguori [Fri, 20 Mar 2009 16:13:50 +0000 (16:13 +0000)]
virtio: Allow guest to defer VIRTIO_F_NOTIFY_ON_EMPTY (Alex Williamson)

There may be cases where the guest does not want the avail queue
interrupt, even when it's empty.  For the virtio-net case, the
guest may use a different buffering scheme or decide polling for
used buffers is more efficient.  This can be accomplished by simply
checking for whether the guest has acknowledged the existing notify
on empty flag.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6865 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoe1000: Fix RX descriptor low threshold interrupt logic (Alex Williamson)
aliguori [Fri, 20 Mar 2009 16:13:47 +0000 (16:13 +0000)]
e1000: Fix RX descriptor low threshold interrupt logic (Alex Williamson)

The RXDMT0 interrupt is supposed to fire when the number of free
RX descriptors drops to some fraction of the total descriptors.
However in practice, it seems like we're adding this interrupt
cause on every RX.  Fix the logic to treat (tail - head) as the
number of free entries rather than the number of used entries.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6864 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agox86: Add NULL check to lsl (Jan Kiszka)
aliguori [Fri, 20 Mar 2009 16:13:41 +0000 (16:13 +0000)]
x86: Add NULL check to lsl (Jan Kiszka)

According to the Intel specs, lsl performs a check against NULL for the
provided selector, just like lar does. helper_lar() includes the
corresponding code, helper_lsl() was lacking it so far.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6863 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovnc: throttle screen updates. (Gerd Hoffmann)
aliguori [Fri, 20 Mar 2009 15:59:24 +0000 (15:59 +0000)]
vnc: throttle screen updates. (Gerd Hoffmann)

This patch makes the vnc server code skip screen refreshes in case
there is data in the output buffer.  This reduces the refresh rate to
throttle the bandwidth needed in case the network link is saturated.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6862 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovnc: fix printf warnings showing up with VNC_DEBUG enabled. (Gerd Hoffmann)
aliguori [Fri, 20 Mar 2009 15:59:18 +0000 (15:59 +0000)]
vnc: fix printf warnings showing up with VNC_DEBUG enabled. (Gerd Hoffmann)

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6861 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovnc: cleanup surface handling, fix screen corruption bug. (Gerd Hoffmann)
aliguori [Fri, 20 Mar 2009 15:59:14 +0000 (15:59 +0000)]
vnc: cleanup surface handling, fix screen corruption bug. (Gerd Hoffmann)

This patch killes the old_data hack in the qemu server and replaces
it with a clean separation of the guest-visible display surface and
the vnc server display surface.  Both guest and server surface have
their own dirty bitmap for tracking screen updates.

Workflow is this:

(1) The guest writes to the guest surface.  With shared buffers being
    active the guest writes are directly visible to the vnc server code.
    Note that this may happen in parallel to the vnc server code running
    (today only in xenfb, once we have vcpu threads in qemu also for
    other display adapters).

(2) vnc_update() callback tags the specified area in the guest dirty
    map.

(3) vnc_update_client() will first walk through the guest dirty map.  It
    will compare guest and server surface for all regions tagged dirty
    and in case the screen content really did change the server surface
    and dirty map are updated.
    Note: old code used old_data in a simliar way, so this does *not*
    introduce an extra memcpy.

(4) Then vnc_update_cient() will send the updates to the vnc client
    using the server surface and dirty map.
    Note: old code used the guest-visible surface instead, causing
    screen corruption in case of guest screen updates running in
    parallel.

The separate dirty bitmap also has the nice effect that forced screen
updates can be done cleanly by simply tagging the area in both guest and
server dirty map.  The old, hackish way was memset(old_data, 42, size)
to trick the code checking for screen changes.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6860 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRemove dead code
malc [Thu, 19 Mar 2009 02:14:10 +0000 (02:14 +0000)]
Remove dead code

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6859 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix VGA issue introduced by r6349
malc [Tue, 17 Mar 2009 16:05:50 +0000 (16:05 +0000)]
Fix VGA issue introduced by r6349

Thanks to Robert Riebisch for bisection

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6858 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix ARM quadword VDUP (core register).
pbrook [Tue, 17 Mar 2009 12:19:58 +0000 (12:19 +0000)]
Fix ARM quadword VDUP (core register).

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6857 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoDelete some unused macros detected with -Wp,-Wunused-macros use
blueswir1 [Mon, 16 Mar 2009 16:33:01 +0000 (16:33 +0000)]
Delete some unused macros detected with -Wp,-Wunused-macros use

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6856 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMake the ELF loader aware of backwards compatibility
blueswir1 [Fri, 13 Mar 2009 21:16:24 +0000 (21:16 +0000)]
Make the ELF loader aware of backwards compatibility

Most 64 bit architectures I'm aware of support running 32 bit code
of the same architecture as well.

So x86_64 can run i386 code easily and ppc64 can run ppc code.

Unfortunately, the current checks are pretty strict. So you can only
load e.g. an x86_64 elf binary on qemu-system-x86_64, but no i386 one.

This can get really annoying. I first encountered this issue with
my multiboot patch, where qemu-system-x86_64 was unable to load an
i386 elf binary because the elf loader rejected it.

The same thing happened again on PPC64 now. The firmware we're loading
is a PPC32 elf binary, as it's shared with PPC32. But the platform is
PPC64.

Right now there is a hack for this in the ppc cpu.h definition, that
simply sets the type to PPC32 in system emulation mode. While that
works fine for the firmware, it's no good if you also want to load a
PPC64 kernel with -kernel.

So in order to solve this mess, I figured the easiest way is to make
the elf loader aware of platforms that are backwards compatible. For
now I was only sure that x86_64 does i386 and ppc64 does ppc32, but
maybe there are other combinations too.

This patch is a prerequisite for having a working -kernel option on
PPC64.

Signed-off-by: Alexander Graf <alex@csgraf.de>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6855 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agotemporarily disable logging around pci config writes (Avi Kivity)
aliguori [Fri, 13 Mar 2009 18:10:13 +0000 (18:10 +0000)]
temporarily disable logging around pci config writes (Avi Kivity)

A pci config write may remap the vga linear frame buffer, confusing the
memory slot dirty logging logic.

Fixed Windows with -vga std.

Signed-off-by: Avi Kivity <avi@redhat.com>
Sigend-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6852 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agostop dirty logging while updating cirrus bank memory (Glauber Costa)
aliguori [Fri, 13 Mar 2009 18:09:59 +0000 (18:09 +0000)]
stop dirty logging while updating cirrus bank memory (Glauber Costa)

Otherwise, slot tracking gets confused.

This fixes a screen corruption bug with Ubuntu guest installation.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6851 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd missing file
aliguori [Fri, 13 Mar 2009 16:27:31 +0000 (16:27 +0000)]
Add missing file

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6850 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUpdate changelog
aliguori [Fri, 13 Mar 2009 16:22:41 +0000 (16:22 +0000)]
Update changelog

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6849 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu:virtio-net: Check return size on the correct sg list (Alex Williamson)
aliguori [Fri, 13 Mar 2009 15:04:02 +0000 (15:04 +0000)]
qemu:virtio-net: Check return size on the correct sg list (Alex Williamson)

When checking that the size of the control virtqueue return field
is sufficient, use the correct sg list.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6845 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomake qemu_announce_self handle non contiguous net tables (Marcelo Tosatti)
aliguori [Fri, 13 Mar 2009 15:03:58 +0000 (15:03 +0000)]
make qemu_announce_self handle non contiguous net tables (Marcelo Tosatti)

With hotplug nd_table might contain holes.

Noticed by Eduardo Habkost.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6844 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoReplace asprintf() with snprintf() in vnc.c ("Daniel P. Berrange")
aliguori [Fri, 13 Mar 2009 15:03:27 +0000 (15:03 +0000)]
Replace asprintf() with snprintf() in vnc.c ("Daniel P. Berrange")

As previously discussed, this patch removes the non-portable use of
asprintf(), replacing it with malloc+snprintf instead

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6843 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomonitor: Provide empty command as final history entry (Jan Kiszka)
aliguori [Fri, 13 Mar 2009 15:02:28 +0000 (15:02 +0000)]
monitor: Provide empty command as final history entry (Jan Kiszka)

Provide an empty line as last entry in command line history, just like
bash e.g. does.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6842 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd and use remaining #defines for PCI device IDs (Stuart Brady)
aliguori [Fri, 13 Mar 2009 15:02:23 +0000 (15:02 +0000)]
Add and use remaining #defines for PCI device IDs (Stuart Brady)

This patch adds and uses #defines for the remaining hardcoded PCI
device IDs.  It also moves definitions taken from linux/pci_ids.h
into a separate header (hw/pci_ids.h), removes the 'RTL' from
PCI_DEVICE_ID_REALTEK_RTL8029, and renames PCI_DEVICE_ID_FSL_E500
to PCI_DEVICE_ID_MPC8533E to match Linux's definition.

Changes in v2:
 * Don't use C99-style comments
 * Move definitions from linux/pci_ids.h into a separate header
 * Rename PCI_DEVICE_ID_FSL_E500 to PCI_DEVICE_ID_MPC8533E

Signed-off-by: Stuart Brady <stuart.brady@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6841 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoremove is_graphic_console from vga.c (Stefano Stabellini)
aliguori [Fri, 13 Mar 2009 15:02:18 +0000 (15:02 +0000)]
remove is_graphic_console from vga.c (Stefano Stabellini)

Hi all,
since vga_draw_graphic is only called by vga_hw_update when the console
associated with the graphic card is active, we don't need to check if
the current console is active using is_graphic_console.

I suspect I introduced these checks when the console switching mechanism
didn't work as it does now.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6840 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoDisplayAllocator interface (Stefano Stabellini)
aliguori [Fri, 13 Mar 2009 15:02:13 +0000 (15:02 +0000)]
DisplayAllocator interface (Stefano Stabellini)

Hi all,
this patch adds a DisplayAllocator interface that allows display
frontends (sdl in particular) to provide a preallocated display buffer
for the graphical backend to use.

Whenever a graphical backend cannot use
qemu_create_displaysurface_from because its own internal pixel format
cannot be exported directly (text mode or graphical mode with color
depth 8 or 24), it creates another display buffer in memory using
qemu_create_displaysurface and does the conversion.
This new buffer needs to be blitted into the sdl surface buffer every time
we need to update portions of the screen.
We can avoid this using the DisplayAllocator interace: sdl provides its
own implementation of qemu_create_displaysurface, giving back the sdl
surface buffer directly (as we used to do before the DisplayState
changes).
Since the buffer returned by sdl could be in bgr format we need to put
back in the handlers of that case.

This approach is good if the two following conditions are true:

1) the sdl surface is a software surface that resides in main memory;

2) the host display color depth is either 16 or 32 bpp.

If first condition is false we can have bad performances using sdl
and vnc together.
If the second condition is false performances are certainly not going to
improve but they shouldn't get worse either.

The first condition is always true, at least on linux/X11 systems; but I
believe is true also on other platforms.
The second condition is true in the vast majority of the cases.

This patch should also have the good side effect of solving the sdl
2D slowness malc was reporting on MacOS, because SDL_BlitSurface is not
going to be called anymore when the guest is in text mode or 24bpp.
However the root problem is still present so I suspect we may
still see some slowness on MacOS when the guest is in 32 or 16 bpp.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6839 c046a42c-6fe2-441c-8c8c-71466251a162