sdk/emulator/qemu.git
14 years agotap: add API to retrieve vhost net header
Michael S. Tsirkin [Wed, 17 Mar 2010 11:08:38 +0000 (13:08 +0200)]
tap: add API to retrieve vhost net header

will be used by virtio-net for vhost net support

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agotap: add vhost/vhostfd options
Michael S. Tsirkin [Wed, 17 Mar 2010 11:08:24 +0000 (13:08 +0200)]
tap: add vhost/vhostfd options

This adds vhost binary option to tap, to enable vhost net accelerator.
Default is off for now, we'll be able to make default on long term
when we know it's stable.

vhostfd option can be used by management, to pass in the fd. Assigning
vhostfd implies vhost=on.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovhost: vhost net support
Michael S. Tsirkin [Wed, 17 Mar 2010 11:08:17 +0000 (13:08 +0200)]
vhost: vhost net support

This adds vhost net device support in qemu. Will be tied to tap device
and virtio by following patches.  Raw backend is currently missing,
will be worked on/submitted separately.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovirtio-pci: fill in notifier support
Michael S. Tsirkin [Wed, 17 Mar 2010 11:08:13 +0000 (13:08 +0200)]
virtio-pci: fill in notifier support

Support host/guest notifiers in virtio-pci.
The last one only with kvm, that's okay
because vhost relies on kvm anyway.

Note on kvm usage: kvm ioeventfd API
is implemented on non-kvm systems as well,
this is the reason we don't need if (kvm_enabled())
around it.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovirtio: move typedef to qemu-common
Michael S. Tsirkin [Wed, 17 Mar 2010 11:08:10 +0000 (13:08 +0200)]
virtio: move typedef to qemu-common

make it possible to use type without header include,
simplifying header dependencies.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovirtio: add set_status callback
Michael S. Tsirkin [Wed, 17 Mar 2010 11:08:05 +0000 (13:08 +0200)]
virtio: add set_status callback

vhost net backend needs to be notified when
frontend status changes. Add a callback,
similar to set_features.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovirtio: notifier support + APIs for queue fields
Michael S. Tsirkin [Wed, 17 Mar 2010 11:08:02 +0000 (13:08 +0200)]
virtio: notifier support + APIs for queue fields

vhost needs physical addresses for ring and other queue fields,
so add APIs for these. In particular, add binding API to set
host/guest notifiers.  Will be used by vhost.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agonotifier: event notifier implementation
Michael S. Tsirkin [Wed, 17 Mar 2010 11:07:58 +0000 (13:07 +0200)]
notifier: event notifier implementation

event notifiers are slightly generalized eventfd descriptors. Current
implementation depends on eventfd because vhost is the only user, and
vhost depends on eventfd anyway, but a stub is provided for non-eventfd
case.

We'll be able to further generalize this when another user comes along
and we see how to best do this.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agokvm: add API to set ioeventfd
Michael S. Tsirkin [Wed, 17 Mar 2010 11:07:54 +0000 (13:07 +0200)]
kvm: add API to set ioeventfd

Comment on kvm usage: rather than require users to do if (kvm_enabled())
and/or ifdefs, this patch adds an API that, internally, is defined to
stub function on non-kvm build, and checks kvm_enabled for non-kvm
run.

While rest of qemu code still uses if (kvm_enabled()), I think this
approach is cleaner, and we should convert rest of code to it
long term.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agotap: add interface to get device fd
Michael S. Tsirkin [Wed, 17 Mar 2010 11:07:50 +0000 (13:07 +0200)]
tap: add interface to get device fd

Will be used by vhost to attach/detach to backend.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovirtio-pci: compile per-target
Anthony Liguori [Wed, 31 Mar 2010 16:52:44 +0000 (11:52 -0500)]
virtio-pci: compile per-target

With vhost, virtio-pci needs to include kvm.h and kvm.h needs to be built
per-target.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoFix -enable-kvm
Anthony Liguori [Thu, 1 Apr 2010 13:33:06 +0000 (08:33 -0500)]
Fix -enable-kvm

Make vl.o compiled per target and fix a thinko in hw/acpi.c.  It's not trivial
to make kvm.h consumable by compiled-once files.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRestore terminal monitor attributes - addition
Shahar Havivi [Sun, 14 Mar 2010 20:41:15 +0000 (22:41 +0200)]
Restore terminal monitor attributes - addition

Patch 2d753894c7553d6a05e8fdbed5f4704398919a35 was missing this check,
when running monitor as /dev/tty and other serial device, i.e:
  qemu -monitor /dev/tty -serial /dev/pts/1

Without this patch any serial device will override the monitor stored
attributes. (monitor is called in main() before any serial device).

Signed-off-by: Shahar Havivi <shaharh@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDon't check for bus master for old guests
Alexander Graf [Tue, 16 Mar 2010 18:18:07 +0000 (19:18 +0100)]
Don't check for bus master for old guests

Older Linux guests don't activate the bus master enable bit. So for those we
can just try to be clever and track if they set the DEVICE_OK bit even though
bus mastering is still disabled.

Under that condition we can disable the windows safety check. With that logic
in place both guests should work just fine. Without PCI hotplug breaks
virtio-net in Linux < 2.6.34 guests.

Signed-off-by: Alexander Graf <agraf@suse.de>
CC: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agousb: class specific interface requests
Max Reitz [Sun, 14 Mar 2010 11:19:03 +0000 (12:19 +0100)]
usb: class specific interface requests

Mass Storage Reset and Get Max LUN are class specific requests, but
they were not marked as such in hw/usb-msd.c, moved therefore
ClassInterfaceRequest and ClassInterfaceOutRequest from hw/usb-net.c
to hw/usb.h.
Furthermore there was a problem in hw/usb-ohci.c when using DEBUG
concerning systems where size_t is a 32 bit integer (printf resulted
in a segmentation fault).

Signed-off-by: Max Reitz <max@tyndur.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd missing #include needed for madvise() on OpenBSD
Blue Swirl [Tue, 30 Mar 2010 19:27:34 +0000 (19:27 +0000)]
Add missing #include needed for madvise() on OpenBSD

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix i386-bsd-user build
Blue Swirl [Tue, 30 Mar 2010 18:24:49 +0000 (18:24 +0000)]
Fix i386-bsd-user build

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoGet bsd-user host page protection code working on FreeBSD hosts
Juergen Lock [Thu, 25 Mar 2010 21:32:16 +0000 (22:32 +0100)]
Get bsd-user host page protection code working on FreeBSD hosts

Use kinfo_getvmmap(3) on FeeBSD >= 7.x and /compat/linux/proc on older
FreeBSD.  (kinfo_getvmmap is preferred since /compat/linux/proc is
usually only mounted on hosts also using the Linuxolator.)

This patch is a bit hacky because the includes needed for kinfo_getvmmap
conflict with other definitions in exec.c by default so I had to `trick
around' a little, but I built the result in FreeBSD 6.4-stable and
7.2-stable tbs and on 8-stable on the host so the hacks at least
should be stable.  (If this is a problem maybe we could also move the
kinfo_getvmmap invocations into a seperate source file but that would
be more work...)

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix bsd-user qemu_vmalloc() host page protection code
Juergen Lock [Thu, 25 Mar 2010 21:11:17 +0000 (22:11 +0100)]
Fix bsd-user qemu_vmalloc() host page protection code

Just do the same as linux-user does.

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix some compilation warnings on FreeBSD hosts
Juergen Lock [Thu, 25 Mar 2010 21:34:00 +0000 (22:34 +0100)]
Fix some compilation warnings on FreeBSD hosts

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoUse sysctl instead of /proc to find executable path on FreeBSD
Juergen Lock [Thu, 25 Mar 2010 21:07:12 +0000 (22:07 +0100)]
Use sysctl instead of /proc to find executable path on FreeBSD

..since /proc usually isn't mounted on FreeBSD.

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile most PPC devices only once
Blue Swirl [Tue, 30 Mar 2010 17:36:23 +0000 (17:36 +0000)]
Compile most PPC devices only once

Make byte swapping unconditional since PPC is big endian.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile prep_pci only once
Blue Swirl [Mon, 29 Mar 2010 19:24:04 +0000 (19:24 +0000)]
Compile prep_pci only once

Make byte swapping unconditional since PPC is big endian.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile qemu-timer only once
Blue Swirl [Mon, 29 Mar 2010 19:24:00 +0000 (19:24 +0000)]
Compile qemu-timer only once

Arrange various declarations so that also non-CPU code can access
them, adjust users.

Move CPU specific code to cpus.c.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile openpic only once
Blue Swirl [Mon, 29 Mar 2010 19:23:59 +0000 (19:23 +0000)]
Compile openpic only once

Replace TARGET_PAGE_SIZE with 4096. Make byte swapping unconditional
since PPC is big endian.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile ide/macio only once
Blue Swirl [Mon, 29 Mar 2010 19:23:57 +0000 (19:23 +0000)]
Compile ide/macio only once

Replace TARGET_PAGE_SIZE with 4096. Make byte swapping unconditional
since PPC is big endian.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile pflash_cfi01 only once
Blue Swirl [Mon, 29 Mar 2010 19:23:56 +0000 (19:23 +0000)]
Compile pflash_cfi01 only once

Push TARGET_WORDS_BIGENDIAN dependency to board level.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile pflash_cfi02 only once
Blue Swirl [Mon, 29 Mar 2010 19:23:55 +0000 (19:23 +0000)]
Compile pflash_cfi02 only once

Push TARGET_WORDS_BIGENDIAN dependency to board level.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile acpi only once
Blue Swirl [Mon, 29 Mar 2010 19:23:52 +0000 (19:23 +0000)]
Compile acpi only once

Use qemu_irqs to trigger CMOS S3 and SMI events.

Avoid using kvm.h, which uses CPUState.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoRefactor target specific handling, compile vl.c only once
Blue Swirl [Mon, 29 Mar 2010 19:23:52 +0000 (19:23 +0000)]
Refactor target specific handling, compile vl.c only once

Move target specific functions and RAM handling to arch_init.c.

Add a flag to QEMUOptions structure to indicate for which
architectures the option is allowed, check the flag
in run time and remove conditional code in option handling.

Now that no target dependencies remain, compile vl.c only once
for all targets.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoRefactor CPUState handling out of vl.c
Blue Swirl [Mon, 29 Mar 2010 19:23:50 +0000 (19:23 +0000)]
Refactor CPUState handling out of vl.c

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoRefactor a few architecture dependent pieces in vl.c
Blue Swirl [Mon, 29 Mar 2010 19:23:50 +0000 (19:23 +0000)]
Refactor a few architecture dependent pieces in vl.c

These will be moved later.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMove KVM and Xen global flags to vl.c
Blue Swirl [Mon, 29 Mar 2010 19:23:49 +0000 (19:23 +0000)]
Move KVM and Xen global flags to vl.c

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMove cpu_exec_init_all() declaration to qemu-common.h
Blue Swirl [Mon, 29 Mar 2010 19:23:48 +0000 (19:23 +0000)]
Move cpu_exec_init_all() declaration to qemu-common.h

Let cpu_exec_init_all() be called from non-CPU code.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoAllow various header files to be included from non-CPU code
Blue Swirl [Mon, 29 Mar 2010 19:23:47 +0000 (19:23 +0000)]
Allow various header files to be included from non-CPU code

Allow balloon.h, gdbstub.h and kvm.h to be included from
non-CPU code.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoAdjust debug handling
Blue Swirl [Mon, 29 Mar 2010 19:23:46 +0000 (19:23 +0000)]
Adjust debug handling

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotcg/mips: fix branch offset during retranslation
Aurelien Jarno [Mon, 29 Mar 2010 00:09:23 +0000 (02:09 +0200)]
tcg/mips: fix branch offset during retranslation

Branch offsets should only be overwritten during relocation, to support
partial retranslation.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoexec: remove dead code
Aurelien Jarno [Sun, 28 Mar 2010 16:47:25 +0000 (18:47 +0200)]
exec: remove dead code

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agolinux-user/ppc: use the Linux register layout
Rob Landley [Sun, 28 Mar 2010 14:51:43 +0000 (16:51 +0200)]
linux-user/ppc: use the Linux register layout

The dynamic linker converts the Linux layout to the AIX layout and is
reentrant so it won't do it a second time if it's already been
converted. In short it work just fine with either register layout.

OTOH, statically linked binaries expect a Linux layout.

Remove code converting the Linux layout to AIX layout so that all
binaries are presented the Linux Layout.

Signed-off-by: Rob Landley <rob@landley.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoqemu-io: fix aio help texts
Christoph Hellwig [Sun, 28 Mar 2010 10:19:31 +0000 (12:19 +0200)]
qemu-io: fix aio help texts

Fix a few typos in the help texts for the various aio commands.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg/arm: Replace qemu_ld32u (left over from previous commit)
Stefan Weil [Sun, 28 Mar 2010 09:44:29 +0000 (11:44 +0200)]
tcg/arm: Replace qemu_ld32u (left over from previous commit)

Commit 86feb1c860dc38e9c89e787c5210e8191800385e
did not change all occurrences of INDEX_op_qemu_ld32u
for tcg/arm.

Please note that I could not test this patch
(I have currently no arm system available).

Cc: Richard Henderson <rth@twiddle.net>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoFix driftfix option
Blue Swirl [Sat, 27 Mar 2010 21:33:46 +0000 (21:33 +0000)]
Fix driftfix option

Based on patch by Zachary Amsden.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix BSD and win32 builds
Blue Swirl [Sat, 27 Mar 2010 18:41:08 +0000 (18:41 +0000)]
Fix BSD and win32 builds

  CC    net/tap-bsd.o
/src/qemu/net/tap-bsd.c: In function `tap_open':
/src/qemu/net/tap-bsd.c:93: warning: implicit declaration of function `error_report'

  CC    sparc-softmmu/../net/tap-win32.o
cc1: warnings being treated as errors
/src/qemu/target-sparc/../net/tap-win32.c: In function 'net_init_tap':
/src/qemu/target-sparc/../net/tap-win32.c:709: warning: implicit declaration of function 'error_report'

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoRefactor numa mode setting
Blue Swirl [Sat, 27 Mar 2010 18:24:45 +0000 (18:24 +0000)]
Refactor numa mode setting

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopflash_cfi02: fix incorrect TARGET_FMT_lx/d use
Blue Swirl [Sat, 27 Mar 2010 18:24:35 +0000 (18:24 +0000)]
pflash_cfi02: fix incorrect TARGET_FMT_lx/d use

Also use target_phys_addr_t for addresses.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile vmware_vga only once
Blue Swirl [Sat, 27 Mar 2010 18:18:17 +0000 (18:18 +0000)]
Compile vmware_vga only once

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotcg-mips: add guest base support
Aurelien Jarno [Sat, 27 Mar 2010 16:31:04 +0000 (17:31 +0100)]
tcg-mips: add guest base support

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg/mips: implement the not_i32 op the same way as gcc
Aurelien Jarno [Sat, 27 Mar 2010 15:50:55 +0000 (16:50 +0100)]
tcg/mips: implement the not_i32 op the same way as gcc

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-mips: implement nor
Aurelien Jarno [Sat, 27 Mar 2010 15:32:55 +0000 (16:32 +0100)]
tcg-mips: implement nor

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agobe more specific in -mem-path error messages
Michael Tokarev [Sat, 27 Mar 2010 13:35:37 +0000 (16:35 +0300)]
be more specific in -mem-path error messages

Signed-Off-By: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoAdd a missing #include for FreeBSD hosts
Juergen Lock [Thu, 25 Mar 2010 21:35:03 +0000 (22:35 +0100)]
Add a missing #include for FreeBSD hosts

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoerror: Move qerror_report() from qemu-error.[ch] to qerror.[ch]
Markus Armbruster [Mon, 22 Mar 2010 09:29:05 +0000 (10:29 +0100)]
error: Move qerror_report() from qemu-error.[ch] to qerror.[ch]

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoerror: Link qemu-img, qemu-nbd, qemu-io with qemu-error.o
Markus Armbruster [Mon, 22 Mar 2010 09:29:04 +0000 (10:29 +0100)]
error: Link qemu-img, qemu-nbd, qemu-io with qemu-error.o

The location tracking interface is used by code shared with qemi-img,
qemu-nbd and qemu-io, so it needs to be available there.  Commit
827b0813 provides it in a rather hamfisted way: it adds a dummy
implementation to qemu-tool.c.

It's cleaner to provide the real thing, and put a few more dummy
monitor functions into qemu-tool.c.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoerror: Make use of error_set_progname() optional
Markus Armbruster [Mon, 22 Mar 2010 09:29:03 +0000 (10:29 +0100)]
error: Make use of error_set_progname() optional

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoerror: Trim includes after "Infrastructure to track locations..."
Markus Armbruster [Mon, 22 Mar 2010 09:29:02 +0000 (10:29 +0100)]
error: Trim includes after "Infrastructure to track locations..."

Missed in commit 827b0813.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoerror: Trim includes in qerror.c
Markus Armbruster [Mon, 22 Mar 2010 09:29:01 +0000 (10:29 +0100)]
error: Trim includes in qerror.c

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoerror: Trim includes after "Move qemu_error & friends..."
Markus Armbruster [Mon, 22 Mar 2010 09:29:00 +0000 (10:29 +0100)]
error: Trim includes after "Move qemu_error & friends..."

Missed in commit 2f792016.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agolinux-user: Use RLIMIT_STACK for default stack size.
Richard Henderson [Fri, 19 Mar 2010 21:21:13 +0000 (14:21 -0700)]
linux-user: Use RLIMIT_STACK for default stack size.

The current default stack limit of 512kB is far too small; a fair
number of gcc testsuite failures (for all guests) are directly
attributable to this.  Using the -s option in every invocation of
the emulator is annoying to say the least.

A reasonable compromise seems to be to honor the system rlimit.
At least on two Linux distributions, this is set to 8MB and 10MB
respectively.  If the system does not limit the stack, then we're
no worse off than before.

At the same time, rename the variable from x86_stack_size and
change the ultimate fallback size from 512kB to 8MB.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-arm: disable PAGE_EXEC for XN pages
Rabin Vincent [Fri, 19 Mar 2010 20:58:03 +0000 (02:28 +0530)]
target-arm: disable PAGE_EXEC for XN pages

Don't set PAGE_EXEC for XN pages, to avoid a bypass of XN protection
checking if the page is already in the TLB.

Signed-off-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agofix race between timer firing vs. alarm_timer->pending = 0
Paolo Bonzini [Fri, 19 Mar 2010 10:30:35 +0000 (11:30 +0100)]
fix race between timer firing vs. alarm_timer->pending = 0

The period for Win32 timers is very short and always the same
independent of dynticks, so it's possible that the timer fires
before qemu_run_all_timers has reset alarm_timer->pending to zero.
Reset alarm_timer->pending before rearming.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoqemu-io: Fix return value handling of bdrv_open
Ryota Ozaki [Sat, 20 Mar 2010 07:08:38 +0000 (16:08 +0900)]
qemu-io: Fix return value handling of bdrv_open

bdrv_open may return -errno so we have to check
if the return value is '< 0', not '== -1'.

Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoqemu-nbd: Fix invalid usage of the first argument of errx
Ryota Ozaki [Sat, 20 Mar 2010 06:23:23 +0000 (15:23 +0900)]
qemu-nbd: Fix invalid usage of the first argument of errx

errx takes the exit status of a process as the first
argument. Passing errno to it is wrong. Instead the
patch lets errx take EXIT_FAILURE.

Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoqemu-nbd: Fix return value handling of bdrv_open
Ryota Ozaki [Sat, 20 Mar 2010 06:23:22 +0000 (15:23 +0900)]
qemu-nbd: Fix return value handling of bdrv_open

bdrv_open may return -errno so we have to check
if the return value is '< 0', not '== -1'.

Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoballoon: Fix overflow when reporting actual memory size
Adam Litke [Thu, 25 Mar 2010 13:58:17 +0000 (08:58 -0500)]
balloon: Fix overflow when reporting actual memory size

Beginning with its introduction, the virtio balloon has had an overflow error
that causes 'info balloon' to misreport the actual memory size when the balloon
itself becomes larger than 4G.  Use a cast when converting dev->actual from
pages to kB to prevent overflows.

Before:
(qemu) info balloon
balloon: actual=5120
(qemu) balloon 1025
(qemu) info balloon
balloon: actual=1025
(qemu) balloon 1024
(qemu) info balloon
balloon: actual=5120

After:
(qemu) info balloon
balloon: actual=5120
(qemu) balloon 1025
(qemu) info balloon
balloon: actual=1025
(qemu) balloon 1024
(qemu) info balloon
balloon: actual=1024

Signed-off-by: Adam Litke <agl@us.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agojson-parser: Output the content of invalid keyword
Amos Kong [Wed, 24 Mar 2010 15:12:05 +0000 (23:12 +0800)]
json-parser: Output the content of invalid keyword

When input some invalid word 'unknowcmd' through QMP port, qemu outputs
this error message:
  "parse error: invalid keyword `%s'"

This patch makes qemu output the content of invalid keyword, like:

  "parse error: invalid keyword `unknowcmd'"

Signed-off-by: Amos Kong <akong@redhat.com>
Acked-by: Richard Henderson <rth@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoraw-posix: Better error return values for hdev_create
Kevin Wolf [Fri, 12 Mar 2010 12:52:31 +0000 (13:52 +0100)]
raw-posix: Better error return values for hdev_create

Now that we output an error message according to the returned error code in
qemu-img, let's return the real error codes. "Input/output error" for
everything isn't helpful.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoqemu-options.hx: fix a typo
Aurelien Jarno [Sat, 27 Mar 2010 10:52:05 +0000 (11:52 +0100)]
qemu-options.hx: fix a typo

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoCompile some MIPS devices only once
Blue Swirl [Sat, 27 Mar 2010 07:26:16 +0000 (07:26 +0000)]
Compile some MIPS devices only once

Move CPU specific declarations to a separate file.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix build
Blue Swirl [Sat, 27 Mar 2010 06:58:53 +0000 (06:58 +0000)]
Fix build

Actually some systems don't define PAGE_SIZE. Fixes build breakage
by f7736b91c40a617e93505e32dcbd2cb56aad8a23.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile ide/core only once
Blue Swirl [Sat, 27 Mar 2010 06:20:53 +0000 (06:20 +0000)]
Compile ide/core only once

Make win2k install hack unconditional as it is still restricted to
x86 only in vl.c.

Replace TARGET_PAGE_SIZE and 4096 with PAGE_SIZE.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotarget-s390: Don't compile in virtio-pci
Alexander Graf [Thu, 25 Mar 2010 13:59:02 +0000 (14:59 +0100)]
target-s390: Don't compile in virtio-pci

As soon as virtio-pci.c gets compiled and used on S390 the internal qdev magic
gets confused and tries to give us PCI devices instead of S390 virtio devices.

Since we don't have PCI on S390, we can safely not compile virtio-pci at all.

In order to do this I added a new config option "CONFIG_VIRTIO_PCI" that I
enabled for every platform except S390. Thanks to this the change should be a
complete nop for every other platform.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-ppc: generic PowerPC TBL
Dmitry Ilyevsky [Fri, 26 Mar 2010 00:25:36 +0000 (03:25 +0300)]
target-ppc: generic PowerPC TBL

Time base SPRs TBL/TBU should be accessible in user/priv modes for reading
as specified in POWER ISA documentation. Therefore SPRs permissions were
changed in gen_tbl function.

Signed-off-by: Dmitry Ilyevsky <ilyevsky@gmail.com>
Acked-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Disambiguate qemu_ld32u with 32-bit and 64-bit outputs.
Richard Henderson [Fri, 19 Mar 2010 19:00:26 +0000 (12:00 -0700)]
tcg: Disambiguate qemu_ld32u with 32-bit and 64-bit outputs.

Some targets (e.g. Alpha and MIPS64) need to keep 32-bit operands
sign-extended in 64-bit registers (regardless of the "real" sign
of the operand).  For that, we need to be able to distinguish
between a 32-bit load with a 32-bit result and a 32-bit load with
a given extension to a 64-bit result.  This distinction already
exists for the ld* loads, but not the qemu_ld* loads.

Reserve qemu_ld32u for 64-bit outputs and introduce qemu_ld32 for
32-bit outputs.  Adjust all code generators to match.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Allow target-specific implementation of NOR.
Richard Henderson [Fri, 19 Mar 2010 20:08:56 +0000 (13:08 -0700)]
tcg: Allow target-specific implementation of NOR.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Allow target-specific implementation of NAND.
Richard Henderson [Fri, 19 Mar 2010 20:03:58 +0000 (13:03 -0700)]
tcg: Allow target-specific implementation of NAND.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Allow target-specific implementation of EQV.
Richard Henderson [Fri, 19 Mar 2010 20:02:02 +0000 (13:02 -0700)]
tcg: Allow target-specific implementation of EQV.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Use not_i32 to implement not_i64.
Richard Henderson [Fri, 19 Mar 2010 19:44:47 +0000 (12:44 -0700)]
tcg: Use not_i32 to implement not_i64.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Change TCGType to an enumeration.
Richard Henderson [Fri, 19 Mar 2010 18:36:30 +0000 (11:36 -0700)]
tcg: Change TCGType to an enumeration.

The TCGType name was already used consistently.  Changing it
to an enumeration instead of a set of defines aids debugging.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Use TCGCond where appropriate.
Richard Henderson [Fri, 19 Mar 2010 18:26:05 +0000 (11:26 -0700)]
tcg: Use TCGCond where appropriate.

Use the TCGCond enumeration type in the brcond and setcond
related prototypes in tcg-op.h and each code generator.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: Name the opcode enumeration.
Richard Henderson [Fri, 19 Mar 2010 18:12:29 +0000 (11:12 -0700)]
tcg: Name the opcode enumeration.

Give the enumeration formed from tcg-opc.h a name: TCGOpcode.
Use that enumeration type instead of "int" whereever appropriate.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoremove remaining occurrences AREG[1-9] and TCG_AREG[1-9]
Paolo Bonzini [Fri, 19 Mar 2010 10:31:15 +0000 (11:31 +0100)]
remove remaining occurrences AREG[1-9] and TCG_AREG[1-9]

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agolinux-user: Add the syscall id for pselect6 on ARM
Michael Casadevall [Fri, 26 Mar 2010 15:25:10 +0000 (15:25 +0000)]
linux-user: Add the syscall id for pselect6 on ARM

As this is now supported in newer linux kernels.

Signed-off-by: Michael Casadevall <mcasadevall@ubuntu.com>
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agolinux-user: add inotify_init1 syscall support
Riku Voipio [Fri, 26 Mar 2010 15:25:11 +0000 (15:25 +0000)]
linux-user: add inotify_init1 syscall support

New syscall which gets actively used when you have a
fresh kernel.

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-arm: Fix handling of AL condition in IT instruction
Johan Bengtsson [Wed, 17 Mar 2010 12:56:07 +0000 (13:56 +0100)]
target-arm: Fix handling of AL condition in IT instruction

Do not try to insert a conditional jump over next instruction when the
condition code is AL as this will trigger an internal error.

Signed-off-by: Johan Bengtsson <teofrastius@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-hppa: Fix 64-bit argument ordering
Richard Henderson [Sat, 20 Feb 2010 19:32:23 +0000 (11:32 -0800)]
tcg-hppa: Fix 64-bit argument ordering

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-hppa: Fix const errors in hppa-dis.c
Richard Henderson [Sat, 20 Feb 2010 19:31:31 +0000 (11:31 -0800)]
tcg-hppa: Fix const errors in hppa-dis.c

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoFix bsd-user broken by commit b5ec5ce0e39d6e7ea707d5604a5f6d567dfd2f48
Juergen Lock [Mon, 22 Mar 2010 18:12:43 +0000 (19:12 +0100)]
Fix bsd-user broken by commit b5ec5ce0e39d6e7ea707d5604a5f6d567dfd2f48

Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix recent pxa270 serial breakage
Lars Munch [Tue, 23 Mar 2010 16:27:01 +0000 (17:27 +0100)]
Fix recent pxa270 serial breakage

This fixes a copy/paste bug introduced in commit
2d48377a8531de63ec1d0c4b9b1959dc4b78356c that pushed TARGET_WORDS_BIGENDIAN
dependency to board level.

Signed-off-by: Lars Munch <lars@segv.dk>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoqemu-error: Avoid build warning.
Edgar E. Iglesias [Tue, 23 Mar 2010 15:13:03 +0000 (16:13 +0100)]
qemu-error: Avoid build warning.

  CC    qemu-error.o
cc1: warnings being treated as errors
/home/edgar/src/c/qemu/git/qemu/qemu-error.c: In function 'error_print_loc':
/home/edgar/src/c/qemu/git/qemu/qemu-error.c:191: error: format not a string literal and no format arguments
make: *** [qemu-error.o] Error 1

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agopci_host: fix breakage
Aurelien Jarno [Tue, 23 Mar 2010 08:59:54 +0000 (09:59 +0100)]
pci_host: fix breakage

This has been broken by commit 952760bb7bce7fbfe0afcf04fee268745f297b87

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoCompile virtio-pci only once
Blue Swirl [Mon, 22 Mar 2010 20:18:58 +0000 (20:18 +0000)]
Compile virtio-pci only once

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile sound devices only once
Blue Swirl [Mon, 22 Mar 2010 20:18:40 +0000 (20:18 +0000)]
Compile sound devices only once

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix Sparc64 build
Blue Swirl [Sun, 21 Mar 2010 20:37:50 +0000 (20:37 +0000)]
Fix Sparc64 build

952760bb7bce7fbfe0afcf04fee268745f297b87 missed one change.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile pci_host only once
Blue Swirl [Sun, 21 Mar 2010 19:47:15 +0000 (19:47 +0000)]
Compile pci_host only once

Convert pci_host_conf_register_mmio_noswap(x) to
pci_host_conf_register_mmio(x, 0).

Convert pci_host_conf_register_mmio(x) to
pci_host_conf_register_mmio(x, 1) for big endian hosts, all cases
happen to be BE.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile pcie_host only once
Blue Swirl [Sun, 21 Mar 2010 19:47:14 +0000 (19:47 +0000)]
Compile pcie_host only once

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile pci only once
Blue Swirl [Sun, 21 Mar 2010 19:47:13 +0000 (19:47 +0000)]
Compile pci only once

Move coalesced_mmio declarations to a more accessible location.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile usb-ohci only once
Blue Swirl [Sun, 21 Mar 2010 19:47:12 +0000 (19:47 +0000)]
Compile usb-ohci only once

Push TARGET_WORDS_BIGENDIAN dependency to board level.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile serial only once
Blue Swirl [Sun, 21 Mar 2010 19:47:11 +0000 (19:47 +0000)]
Compile serial only once

Push TARGET_WORDS_BIGENDIAN dependency to board level.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile ne2000_isa only once
Blue Swirl [Sun, 21 Mar 2010 19:47:10 +0000 (19:47 +0000)]
Compile ne2000_isa only once

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCompile isa_mmio only once
Blue Swirl [Sun, 21 Mar 2010 19:47:09 +0000 (19:47 +0000)]
Compile isa_mmio only once

Push TARGET_WORDS_BIGENDIAN dependency to board level.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>