Commit Graph

12801 Commits

Author SHA1 Message Date
Stefan Hajnoczi
5eb5527b1e trace: Don't strip lines containing '#' arbitrarily
Although comment lines must be skipped, the '#' character can occur in
valid format strings.  Be more careful when checking for comments.
Leave comments at the end of the line where they will not interfere with
other processing.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-09 08:16:50 +00:00
Stefan Hajnoczi
9a85d39447 trace: Use portable format strings
It is not portable to use "%ld" for int64_t because int64_t may have
type long on 64-bit platforms and long long on 32-bit platforms.  Use
the standard library PRId64 macros to keep format strings portable.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-09 08:16:45 +00:00
Edgar E. Iglesias
3e18c6bf77 cris: Consider the TLB valid bit on writes to the TLB
When updating the guest TLB we only need to flush previous
mappings from the entry written if the entry was valid.

Also fixes a compiler warning reported by Blue Swirl.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-10-07 21:20:52 +02:00
Michael S. Tsirkin
c885212109 vhost: error code
fix up errors returned to include errno, not just -1

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2010-10-07 12:19:47 +02:00
Michael S. Tsirkin
54dd932128 virtio: change set guest notifier to per-device
When using irqfd with vhost-net to inject interrupts,
a single evenfd might inject multiple interrupts.
Implementing this is much easier with a single
per-device callback to set guest notifiers.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2010-10-07 12:19:47 +02:00
Stefan Weil
010ec62934 eepro100: Add support for multiple individual addresses (multiple IA)
I reviewed the latest sources of Linux, FreeBSD and NetBSD.
They all reset the multiple IA bit (multi_ia in BSD) to zero,
but I did not find code which sets this bit to one
(like it is done by some routers).

Running Windows guests also did not set this bit.

Intel's Open Source Software Developer Manual does not
give much information on the semantics related to this bit,
so I had to guess how it works. The guess was good enough
to make the router emulation work.

Related changes in this patch:
* Update naming and documentation of the internal hash register.
  It is not limited to multicast, but also used for multiple IA.
* Dump complete configuration register when debug traces are enabled.
* Debug output when multiple IA bit is set during CmdConfigure.
* Debug output when frames are received because multiple IA bit is set,
  or when they are ignored although it is set.

Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2010-10-07 12:19:47 +02:00
Michael S. Tsirkin
afbaa7b438 virtio-net: unify vhost-net start/stop
Move all of vhost-net start/stop logic to a single routine,
and call it from everywhere.

Additionally, start/stop vhost-net on link up/down:
we should not transmit anything if user asked us to
put the link down.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
2010-10-07 12:19:47 +02:00
Michael S. Tsirkin
e0c472d8c2 virtio: invoke set_status callback on reset
As status is set to 0 on reset, invoke the relevant callback. This makes
for a cleaner code in devices as they don't need to duplicate the code
in their reset routine, as well as excercises this path a little more.

In particular this makes it possible to unify
vhost-net handling code with the following patch.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2010-10-07 12:19:47 +02:00
Michael S. Tsirkin
a083a89d72 net: delay freeing peer host device
With -netdev, virtio devices present offload
features to guest, depending on the backend used.
Thus, removing host netdev peer while guest is
active leads to guest-visible inconsistency and/or crashes.

As a solution, while guest (NIC) peer device exists,
we prevent the host peer from being deleted.
This patch does this by adding peer_deleted flag in nic state:
if host device is going away while guest device
is around, set this flag and keep a shell of
the host device around for as long as guest device exists.

The link is put down so all packets will get discarded.

At the moment, management can detect that device deletion
is delayed by doing info net. As a next step, we shall add
commands that control hotplug/unplug without
removing the device, and an event to report that
guest has responded to the hotplug event.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
2010-10-06 18:24:37 +02:00
Anthony Liguori
4447d60968 Merge remote branch 'spice/submit.6' into staging
Conflicts:
	configure

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-10-05 14:14:19 -05:00
Anthony Liguori
48f57044e6 Merge remote branch 'qmp/for-anthony' into staging 2010-10-05 13:54:49 -05:00
Stefan Weil
e0c8a796d5 linux-user: Fix typo m86k -> m68k
Replace m86k_sim_stat by m68k_sim_stat.

Cc: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
2010-10-05 13:53:56 -05:00
Stefan Weil
b0cd712cc3 Fix spelling in comments
multifuction -> multifunction
successfull -> successful.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
2010-10-05 13:53:56 -05:00
Stefan Weil
dda5336eac docs: Improve documentation
Fix some inconsistencies (tabs and punctuation)
and try to improve grammar and spelling.

Cc: Juan Quintela <quintela@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
2010-10-05 13:53:55 -05:00
Stefan Weil
f66724c99a Add new user mode option -ignore-environment
An empty environment is sometimes useful in user mode.
The new option provides it for linux-user and bsd-user
(darwin-user still has no environment related options).

The patch also adds the documentation for other
environment related options.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
2010-10-05 13:53:55 -05:00
John Clark
999fa40e43 ppc: Minor 40x MMU fixes
* Fix swapped reading of tlblo/hi.
* Fix tlb exec permissions

Signed-off-by: John Clark <clarkjc@runbox.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-10-05 18:38:55 +02:00
Stefan Hajnoczi
358664cc6d console: Avoid dereferencing NULL active_console
The console_select() function does not check that active_console is
non-NULL before dereferencing it.  When invoked with qemu -nodefaults it
is possible to hit this case.

This patch checks that active_console is non-NULL before stashing away
the old console dimensions in console_select().

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:43:10 +00:00
Stefan Weil
7fd3f49440 exec: Fix compilation error for debug code
is_softmmu was removed with commit
d4c430a80f,
so remove it now from debug code, too.

Fix also the format specifier for paddr
in the same line of code.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:41:09 +00:00
Stefan Weil
b832134d8a rc4030: Fix compilation error in debug code
min was unknown here, so avoid it.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:41:03 +00:00
Stefan Weil
a4a77677d7 mipsnet: Fix compiler warning in debug code
size_t needs a different format specifier, so fix this.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:40:58 +00:00
Stefan Weil
d523d5d694 block/vvfat: Fix compiler warning in debug code
Fix this compiler warning:
./block/vvfat.c:2285: error: comparison of unsigned expression >= 0 is always true

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:40:54 +00:00
Stefan Weil
c9ba47dc5d virtio-9p: Use GCC_FMT_ATTR and fix a format warning
With the new gcc format warnings, gcc detected this:

/qemu/hw/virtio-9p.c:1040: error: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘__nlink_t’

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:39:49 +00:00
Stefan Weil
6ea421fee1 blockdev: Use GCC_FMT_ATTR (format checking)
Additional changes:

* Removed 'extern' from drive_add (avoids too long line).
* Removed 'extern' from other functions (makes declarations
  consistent with others in same header file).

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:37:13 +00:00
Stefan Weil
8b7968f7c4 Use GCC_FMT_ATTR (format checking)
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:34:51 +00:00
Stefan Weil
e5924d8980 Replace most gcc format attributes by macro GCC_FMT_ATTR (format checking)
Since version 4.4.x, gcc supports additional format attributes.
    __attribute__ ((format (gnu_printf, 1, 2)))
should be used instead of
    __attribute__ ((format (printf, 1, 2))
because QEMU always uses standard format strings (even with mingw32).

The patch replaces format attribute printf / __printf__ by macro
GCC_FMT_ATTR which uses gnu_printf if supported.

It also removes an #ifdef __GNUC__ (not needed any longer).

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:34:36 +00:00
Andreas Färber
4a2b39d323 slirp: Silence warning on Haiku
Haiku has O_BINARY in fcntl.h.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Cc: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:31:49 +00:00
Andreas Färber
3ee66dfa52 tap: Add stub for Haiku
Adapted from AIX code.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:31:41 +00:00
Andreas Färber
5dc2eec957 nbd: Haiku has _IO() in its BSD compatibility layer
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:31:33 +00:00
Andreas Färber
aff447c916 Haiku doesn't have libm
Math functions are integrated into Haiku's libroot.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:31:21 +00:00
Andreas Färber
bd00d539d3 configure: Don't rely on special pthreads library
Haiku has pthreads integrated into its libroot.so library. No linker arguments
are needed for it, so don't fail if -lpthread and similar don't link.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:31:14 +00:00
Andreas Färber
179cf40000 configure: Add basic support for Haiku
For compatibility with BeOS, Haiku's error codes are negative whereas recent
POSIX versions require them to be positive. As spotted by François, some
parts of QEMU code rely on this, so use a mapper library to convert them
to positive ones.

Cc: François Revol <revol@free.fr>
Cc: Ingo Weinhold <ingo_weinhold@gmx.de>

Haiku has network functions in libnetwork.so. It doesn't ship libutil.so.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-03 06:31:05 +00:00
Blue Swirl
a82cdd58fd trace: avoid unnecessary recompilation if nothing changed
Add logic to detect changes in generated files. If the old
and new files are identical, don't touch the generated file.
This avoids a lot of churn since many files depend on trace.h.

Based on suggestion by Paolo Bonzini.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-02 14:28:12 +00:00
Blue Swirl
904fe1fbd1 Makefile: fix config-devices.mak generation
The logic of detecting changes in default-configs/*.mak is
flawed as can be demonstrated by 'touch default-configs/*.mak'
followed by make. This results in a message claiming that user
made changes to the */config-devices.mak files.

Fix by separating the detection of changes made by the user and
changes in the default-configs.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-02 14:28:08 +00:00
Blue Swirl
3f7132d1a3 sysbus: fix address truncation
Fix address truncation in sysbus by using a wider type.

Reported-by: Artyom Tarasenko <atar4qemu@googlemail.com>
Tested-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2010-10-02 14:27:41 +00:00
Stefan Weil
211ecdc0e4 target-cris: Use %td for ptrdiff_t arguments in debug message
According to ISO/IEC 9899:1999 7.19.6.1,
the correct length modifier for ptrdiff_t is 't', not 'z'.

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-10-02 13:12:21 +02:00
Stefan Weil
e6aa0f11ed target-microblaze: Use %td for ptrdiff_t arguments in debug message
According to ISO/IEC 9899:1999 7.19.6.1,
the correct length modifier for ptrdiff_t is 't', not 'z'.

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-10-02 13:12:21 +02:00
Edgar E. Iglesias
3b2e3dc939 virtex: Add braces
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-10-02 13:04:49 +02:00
Luiz Capitulino
a18b2ce2ed QMP/README: Update QMP homepage address
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:07 -03:00
Luiz Capitulino
acd0a09337 Monitor: Rename the qemu-monitor.hx file
Let's be consistent and call it hmp-commands.hx, so that we have
qmp-commands.hx for QMP and hmp-commands.hx for HMP.

Please, note that this commit doesn't touch qemu-monitor.texi. All
texi files have the qemu- prefix and I don't think it's worth
changing that.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:07 -03:00
Luiz Capitulino
fc29df759e QMP: Introduce qmp_call_cmd()
Calls a QObject handler and emits the QMP response, also drops
monitor_call_handler() which is now unused.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:07 -03:00
Luiz Capitulino
de79ba6f53 Monitor: Directly call QObject handlers
This avoids handle_user_command() calling monitor_call_handler(),
which is currently shared with QMP.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:07 -03:00
Luiz Capitulino
4903de0ceb Monitor: Rename monitor_handler_is_async()
Let's follow the convention introduced by the previous commit and
call it handler_is_async().

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:07 -03:00
Luiz Capitulino
9e80721eff Monitor: Rename monitor_handler_ported()
That name makes no sense anymore, as dispatch tables have been split,
a better name is handler_is_qobject(), which really communicates
the handler's type.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00
Luiz Capitulino
0e19a62770 Monitor: Drop monitor_cmd_user_only()
This function was only needed when QMP and HMP were sharing dispatch
tables, this is no longer true so just drop it.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00
Luiz Capitulino
30f5041ef1 Monitor: Drop QMP info from the qemu-monitor.hx file
QMP has its own dispatch table and documentation file
(qmp-commands.hx), we can now drop the following QMP specific info
from qemu-monitor.hx:

    o SQMP/EQMP sections
    o The qmp_capabilities command
    o The query-commands command

However, note that QObject handlers entries are not being removed.
This will only happen when we introduce a proper QMP call interface.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00
Luiz Capitulino
d1249eaa4b QMP: Small cleanup in handle_qmp_command()
QMP has its own dispatch tables, we can now drop the following
checks:

    o 'info' command: this command doesn't exist in QMP's
       dispatch table, the right thing will happen when it's
       issued by a client (ie. command not found error)

    o monitor_handler_ported(): all QMP handlers are 'ported', no
      need to check for that

    o monitor_cmd_user_only(): no HMP handler will exist in QMP's
      dispatch tables, that's why we have split them after all :-)

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00
Luiz Capitulino
2e061a7c86 QMP: Simplify do_info_commands()
We now iterate over QMP's dispatch tables, no need to check for
QMP-only handlers anymore.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00
Luiz Capitulino
3e12a751ed QMP: Introduce query commands dispatch table
The new table is a copy of HMP's table, containing only QObject
handlers.

In the near future HMP will be making QMP calls and then we will
be able to drop QObject handlers from HMP's table.

From now on, QMP and HMP have different query command dispatch
tables.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00
Luiz Capitulino
f36b4afba9 QMP: Introduce command dispatch table
Also update QMP functions to use it. The table is generated
from the qmp-commands.hx file.

From now on, QMP and HMP have different command dispatch
tables.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00
Luiz Capitulino
bead3ce139 QMP: Introduce qmp_find_cmd()
Next commit needs this new function: it will introduce the
the QMP's command dispatch table and qmp_find_cmd() will be
used to search on it.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2010-10-01 10:20:06 -03:00