]> git.proxmox.com Git - qemu.git/log
qemu.git
14 years agomonitor: Convert do_quit() do QObject
Luiz Capitulino [Wed, 7 Oct 2009 16:41:56 +0000 (13:41 -0300)]
monitor: Convert do_quit() do QObject

Patchworks-ID: 35345
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: do_info(): handle new and old info handlers
Luiz Capitulino [Wed, 7 Oct 2009 16:41:55 +0000 (13:41 -0300)]
monitor: do_info(): handle new and old info handlers

do_info() is special, its job is to call 'info handlers'.
This is similar to what monitor_handle_command() does,
therefore do_info() also has to distinguish among new and
old style info handlers.

This commit converts do_info() to the new QObject style and
makes the appropriate changes so that it can handle both
info handlers styles.

In the future, when all handlers are converted to QObject's
style, it will be possible to share more code with
monitor_handle_command().

This commit also introduces a new function called
monitor_user_noop(), it should be used by handlers which do
not have data to print.

This is the case of do_info().

Patchworks-ID: 35341
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: Handle new and old style handlers
Luiz Capitulino [Wed, 7 Oct 2009 16:41:54 +0000 (13:41 -0300)]
monitor: Handle new and old style handlers

This commit changes monitor_handle_command() to support old style
_and_ new style handlers.

New style handlers are protocol independent, they return their
data to the Monitor, which in turn decides how to print them
(ie. user protocol vs. machine protocol).

Converted handlers will use the 'user_print' member of 'mon_cmd_t'
to define its user protocol function, which will be called to print
data in the user protocol format.

Handlers which don't have 'user_print' defined are not converted
and are handled as usual.

Patchworks-ID: 35340
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: Add user_print() to mon_cmd_t
Luiz Capitulino [Wed, 7 Oct 2009 16:41:53 +0000 (13:41 -0300)]
monitor: Add user_print() to mon_cmd_t

This new struct member will store a pointer to a function that
should be used to output data in the user protocol format.

It will also serve as a flag to say if a given handler has already
been converted to the new QObject style.

Patchworks-ID: 35339
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: union for command handlers
Luiz Capitulino [Wed, 7 Oct 2009 16:41:52 +0000 (13:41 -0300)]
monitor: union for command handlers

This commits adds a new union member to mon_cmd_t for command
handlers and convert monitor_handle_command() and qemu-monitor.hx
to use it.

This improves type safety.

Patchworks-ID: 35337
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: union for info handlers
Luiz Capitulino [Wed, 7 Oct 2009 16:41:51 +0000 (13:41 -0300)]
monitor: union for info handlers

This commit adds a union to mon_cmd_t for info handlers and
converts do_info() and info_cmds[] array to use it.

This improves type safety.

Next commit will convert command handlers.

Patchworks-ID: 35336
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: Convert mon_cmd_t initializations to C99 style
Luiz Capitulino [Wed, 7 Oct 2009 16:41:50 +0000 (13:41 -0300)]
monitor: Convert mon_cmd_t initializations to C99 style

Patchworks-ID: 35335
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoIntroduce QList unit-tests
Luiz Capitulino [Wed, 7 Oct 2009 16:41:49 +0000 (13:41 -0300)]
Introduce QList unit-tests

This suite contains tests to assure that QList API works as expected.

To execute it you should have check installed and build QEMU with
check support enabled (--enable-check-utests) and then run:

$ ./check-qlist

Patchworks-ID: 35333
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoIntroduce QList
Luiz Capitulino [Wed, 7 Oct 2009 16:41:48 +0000 (13:41 -0300)]
Introduce QList

QList is a high-level data type that can be used to store QObjects
in a singly-linked list.

The following functions are available:

- qlist_new()    Create a new QList
- qlist_append() Append a QObject to the list
- qlist_iter()   Iterate over stored QObjects

Patchworks-ID: 35334
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoQObject: Accept NULL
Luiz Capitulino [Wed, 7 Oct 2009 16:41:47 +0000 (13:41 -0300)]
QObject: Accept NULL

It is convenient that QDECREF() and QINCREF() accept the QObject
parameter to be NULL, so that we don't duplicate 'if' tests in
the callers.

Patchworks-ID: 35332
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile ssi when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:27 +0000 (02:41 +0200)]
Only compile ssi when one target uses it

Patchworks-ID: 35221
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile ssi-sd when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:26 +0000 (02:41 +0200)]
Only compile ssi-sd when one target uses it

Patchworks-ID: 35220
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile max111x when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:25 +0000 (02:41 +0200)]
Only compile max111x when one target uses it

Patchworks-ID: 35219
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile ads7846 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:24 +0000 (02:41 +0200)]
Only compile ads7846 when one target uses it

Patchworks-ID: 35218
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile sd0323 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:23 +0000 (02:41 +0200)]
Only compile sd0323 when one target uses it

Patchworks-ID: 35217
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile sd0303 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:22 +0000 (02:41 +0200)]
Only compile sd0303 when one target uses it

Patchworks-ID: 35216
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile stellaris_input when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:21 +0000 (02:41 +0200)]
Only compile stellaris_input when one target uses it

Patchworks-ID: 35213
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile tmp105 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:20 +0000 (02:41 +0200)]
Only compile tmp105 when one target uses it

Patchworks-ID: 35214
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile lm832x when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:19 +0000 (02:41 +0200)]
Only compile lm832x when one target uses it

Patchworks-ID: 35211
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile tsc2005 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:18 +0000 (02:41 +0200)]
Only compile tsc2005 when one target uses it

Patchworks-ID: 35215
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile twl92230 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:17 +0000 (02:41 +0200)]
Only compile twl92230 when one target uses it

Patchworks-ID: 35212
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile wm8750 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:16 +0000 (02:41 +0200)]
Only compile wm8750 when one target uses it

Patchworks-ID: 35209
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile max7310 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:15 +0000 (02:41 +0200)]
Only compile max7310 when one target uses it

Patchworks-ID: 35210
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile sd when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:14 +0000 (02:41 +0200)]
Only compile sd when one target uses it

Patchworks-ID: 35208
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile ptimer when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:13 +0000 (02:41 +0200)]
Only compile ptimer when one target uses it

Patchworks-ID: 35207
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile m48t59 when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:12 +0000 (02:41 +0200)]
Only compile m48t59 when one target uses it

Patchworks-ID: 35204
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile escc when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:11 +0000 (02:41 +0200)]
Only compile escc when one target uses it

Patchworks-ID: 35205
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile esp when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:10 +0000 (02:41 +0200)]
Only compile esp when one target uses it

Patchworks-ID: 35206
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile ecc when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:09 +0000 (02:41 +0200)]
Only compile ecc when one target uses it

Patchworks-ID: 35203
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile nand when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:08 +0000 (02:41 +0200)]
Only compile nand when one target uses it

Patchworks-ID: 35202
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile qdev_addr when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:07 +0000 (02:41 +0200)]
Only compile qdev_addr when one target uses it

Patchworks-ID: 35201
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile isa_mmio when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:06 +0000 (02:41 +0200)]
Only compile isa_mmio when one target uses it

Patchworks-ID: 35200
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly compile usb_ohci when one target uses it
Juan Quintela [Wed, 7 Oct 2009 00:41:05 +0000 (02:41 +0200)]
Only compile usb_ohci when one target uses it

Patchworks-ID: 35199
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoGenerate gdbstub-xml.c only when needed
Juan Quintela [Wed, 7 Oct 2009 00:41:04 +0000 (02:41 +0200)]
Generate gdbstub-xml.c only when needed

First user of new config-devices.mak

Patchworks-ID: 35198
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoGenerate config-devices.h
Juan Quintela [Wed, 7 Oct 2009 00:41:03 +0000 (02:41 +0200)]
Generate config-devices.h

Generate config-devices.h for each target and config-all-devices.h for
common library.  We don't want to name both config-devices.h to avoid
path problems

Patchworks-ID: 35195
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd new config-devices.mak for each target
Juan Quintela [Wed, 7 Oct 2009 00:41:02 +0000 (02:41 +0200)]
Add new config-devices.mak for each target

We generate config-devices.h from there automatically.
We need to do it in main Makefile, because we are going to need a main
Makefile for them.

Patchworks-ID: 35196
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMove generation of config-target.h to Makefile from configure
Juan Quintela [Wed, 7 Oct 2009 00:41:01 +0000 (02:41 +0200)]
Move generation of config-target.h to Makefile from configure

Patchworks-ID: 35194
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRename config.{h, mak} config-target.{h, mak}
Juan Quintela [Wed, 7 Oct 2009 00:41:00 +0000 (02:41 +0200)]
Rename config.{h, mak} config-target.{h, mak}

Add config.h file that includes config-target.h and config-host.h

Patchworks-ID: 35193
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRemove useless check for config-host.mak
Juan Quintela [Wed, 7 Oct 2009 00:40:59 +0000 (02:40 +0200)]
Remove useless check for config-host.mak

If config-host.mak dont' exist, we have exited in the check at
the beginning of the file.
Once here, move the bits to the else part of the test at the beginning of
the file.

Patchworks-ID: 35191
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMove generation of config-host.h to Makefile from configure
Juan Quintela [Wed, 7 Oct 2009 00:40:58 +0000 (02:40 +0200)]
Move generation of config-host.h to Makefile from configure

Use timestamp based appreach to avoid not needed recompilation.
Add it to rules.mak

Many thanks to Paolo Bonzini for helpding the design, and the debug.

Patchworks-ID: 35190
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDon't include config-host.mak from inside config.mak
Juan Quintela [Wed, 7 Oct 2009 00:40:57 +0000 (02:40 +0200)]
Don't include config-host.mak from inside config.mak

Include it directly in Makefile.target

Patchworks-ID: 35189
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoCRIS: Update PR_EDA on TLB faults.
Edgar E. Iglesias [Thu, 8 Oct 2009 10:07:11 +0000 (12:07 +0200)]
CRIS: Update PR_EDA on TLB faults.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoClean up test for qdev_init() failure
Markus Armbruster [Tue, 6 Oct 2009 23:16:01 +0000 (01:16 +0200)]
Clean up test for qdev_init() failure

Some callers test for != 0, some for < 0.  Normalize to < 0.

Patchworks-ID: 35171
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoWarn if value of qdev_init() isn't checked
Markus Armbruster [Tue, 6 Oct 2009 23:16:00 +0000 (01:16 +0200)]
Warn if value of qdev_init() isn't checked

After qdev_init() fails, the device is gone.  Failure to check runs a
high risk of use-after-free.

Patchworks-ID: 35166
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMake isa_create() terminate program on failure
Markus Armbruster [Tue, 6 Oct 2009 23:15:59 +0000 (01:15 +0200)]
Make isa_create() terminate program on failure

Callers don't check the return value anyway.

Patchworks-ID: 35172
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoNew qdev_init_nofail()
Markus Armbruster [Tue, 6 Oct 2009 23:15:58 +0000 (01:15 +0200)]
New qdev_init_nofail()

Like qdev_init(), but terminate program via hw_error() instead of
returning an error value.

Use it instead of qdev_init() where terminating the program on failure
is okay, either because it's during machine construction, or because
we know that failure can't happen.

Because relying in the latter is somewhat unclean, and the former is
not always obvious, it would be nice to go back to qdev_init() in the
not-so-obvious cases, only with proper error handling.  I'm leaving
that for another day, because it involves making sure that error
values are properly checked by all callers.

Patchworks-ID: 35168
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoCheck return value of qdev_init()
Markus Armbruster [Tue, 6 Oct 2009 23:15:57 +0000 (01:15 +0200)]
Check return value of qdev_init()

But do so only where it may actually fail.  Leave the rest for the
next commit.

Patchworks-ID: 35167
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMake qdev_init() destroy the device on failure
Markus Armbruster [Tue, 6 Oct 2009 23:15:56 +0000 (01:15 +0200)]
Make qdev_init() destroy the device on failure

Before, every caller had to do this.  Only two actually did.

Patchworks-ID: 35170
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoUnbreak USB autoconnect filters
Markus Armbruster [Tue, 6 Oct 2009 23:15:55 +0000 (01:15 +0200)]
Unbreak USB autoconnect filters

Commit 22f84e73 added a qdev_init() missing on the path through
usb_host_device_open(), but that broke the path through
usb_host_auto_scan(), which already had one.  Remove that one.

Patchworks-ID: 35169
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agotcg: improve output log
Aurelien Jarno [Wed, 7 Oct 2009 05:53:41 +0000 (07:53 +0200)]
tcg: improve output log

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-i386: fix ARPL
Laurent Desnogues [Tue, 6 Oct 2009 08:14:29 +0000 (10:14 +0200)]
target-i386: fix ARPL

The arpl implementation in target-i386/translate.c uses cpu_A0
temporary across a brcond op.  This patch fixes that issue.

Signed-off-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoconfigure and Makefile are not generated in qemu
Juan Quintela [Tue, 6 Oct 2009 19:11:15 +0000 (21:11 +0200)]
configure and Makefile are not generated in qemu

Just say it to make

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDon't use implicit rules for Makefile
Juan Quintela [Tue, 6 Oct 2009 19:11:14 +0000 (21:11 +0200)]
Don't use implicit rules for Makefile

This remove implicit rules + implicit variables.
Explicit rules like the generation of %.h and %.c from %.hx still works
as expected.

As an added bonus, now the output of make -d is readable.

As another added bonus, time spend on Makefiles is way smaller.
We run make -j3 in a fully compiled tree, and results are:

Before:

$ time make -j3
real 0m1.225s
user 0m1.660s
sys 0m0.253s

After:
$ time make -j3
real 0m0.422s
user 0m0.393s
sys 0m0.248s

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agooptionrom: create .PHONY variable
Juan Quintela [Tue, 6 Oct 2009 19:11:13 +0000 (21:11 +0200)]
optionrom: create .PHONY variable

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoadd build-all to .PHONY rules
Juan Quintela [Tue, 6 Oct 2009 19:11:12 +0000 (21:11 +0200)]
add build-all to .PHONY rules

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agooptionrom: remove use of implicit RM variable
Juan Quintela [Tue, 6 Oct 2009 19:11:11 +0000 (21:11 +0200)]
optionrom: remove use of implicit RM variable

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAIOLIBS is not used anywhere
Juan Quintela [Tue, 6 Oct 2009 19:11:10 +0000 (21:11 +0200)]
AIOLIBS is not used anywhere

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqdev: move comment
Gerd Hoffmann [Tue, 6 Oct 2009 19:17:52 +0000 (21:17 +0200)]
qdev: move comment

Move comment back next to main_system_bus to avoid confusion.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqemu/pci: make pci not depend on msix
Michael S. Tsirkin [Mon, 5 Oct 2009 21:02:20 +0000 (23:02 +0200)]
qemu/pci: make pci not depend on msix

Making pci device cleanup msix automatically makes pci.c depend on
msix.c, which is IMO messy.  Since devices do msix_init it's easy and
natural for them to also do msix_uninit.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqemu/pci: clarify pci config load routine
Michael S. Tsirkin [Mon, 5 Oct 2009 20:46:11 +0000 (22:46 +0200)]
qemu/pci: clarify pci config load routine

PCI load routine has to be called with size equal to 256 (otherwise it
will crash in weird ways).  So assert this, making code clearer.
Also avoid dynamically sized array on stack - good for portability.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Cc: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoFinal net cleanup after conversion to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:16 +0000 (12:17 +0100)]
Final net cleanup after conversion to QemuOpts

Now that net_client_init() has no users, kill it off and rename
net_client_init_from_opts().

There is no further need for the old code in net_client_parse() either.
We use qemu_opts_parse() 'firstname' facitity for that. Instead, move
the special handling of the 'vmchannel' type there.

Simplify the vl.c code into merely call net_client_parse() for each
-net command line option and then calling net_init_clients() later
to iterate over the options and create the clients.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort PCI NIC hotplug to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:15 +0000 (12:17 +0100)]
Port PCI NIC hotplug to QemuOpts

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort usb net to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:14 +0000 (12:17 +0100)]
Port usb net to QemuOpts

We need net_client_init_from_opts() exported for this

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort host_net_add monitor command to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:13 +0000 (12:17 +0100)]
Port host_net_add monitor command to QemuOpts

Here is where we rely on qemu_opts_parse() to handle an empty string.
We could alternatively explicitly handle this here by using
qemu_opts_create() when we're not supplied any parameters, but its
cleaner this way.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoClean up legacy code in net_client_init()
Mark McLoughlin [Tue, 6 Oct 2009 11:17:12 +0000 (12:17 +0100)]
Clean up legacy code in net_client_init()

Now that we've ported everything over to QemuOpts, we can kill off
all the cruft in net_client_init().

Note, the 'channel' type requires special handling as it uses a
format that QemuOpts can't parse

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort -net dump to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:11 +0000 (12:17 +0100)]
Port -net dump to QemuOpts

Note, not incrementing nb_host_devs in net_init_dump() is intentional.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort -net vde to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:10 +0000 (12:17 +0100)]
Port -net vde to QemuOpts

The net_vde_init() change is needed because we now pass NULL pointers
instead of empty strings for group/sock if they're not set.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort -net socket to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:09 +0000 (12:17 +0100)]
Port -net socket to QemuOpts

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort -net tap to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:08 +0000 (12:17 +0100)]
Port -net tap to QemuOpts

Some parameters are not valid with fd=. Rather than having a separate
parameter description table for validating fd=, it's easir to just
check for those invalid parameters later.

Note, the need to possible lookup a file descriptor name from the
monitor is the reason why all these init functions are passed a Monitor
pointer.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort -net user to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:07 +0000 (12:17 +0100)]
Port -net user to QemuOpts

The handling of guestfwd and hostfwd requires the previous changes
to allow multiple values for each parameter. The only way to access
those multiple values is to use qemu_opt_foreach().

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort -net none and -net nic to QemuOpts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:06 +0000 (12:17 +0100)]
Port -net none and -net nic to QemuOpts

We use a table of network types to look up the initialization function
and parameter descriptions in net_client_init().

For now, we use QemuOpts for the 'none' and 'nic' types. Subsequent
patches port the other types too and the special casing is removed.

We're not parsing the full -net option string here as the type has
been stripped from the string, so we do not use qemu_opts_parse()
'firstname' facility. This will also be rectified in subsequent
patches.

No functional changes are introduced by this patch.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd qemu_net_opts
Mark McLoughlin [Tue, 6 Oct 2009 11:17:05 +0000 (12:17 +0100)]
Add qemu_net_opts

The first step in porting -net to QemuOpts. We do not include parameter
descriptions in the QemuOptsList because we use the first parameter to
choose which descriptions validate against.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoNever overwrite a QemuOpt
Mark McLoughlin [Tue, 6 Oct 2009 11:17:04 +0000 (12:17 +0100)]
Never overwrite a QemuOpt

Rather than overwriting a QemuOpt, just add a new one to the tail and
always do a reverse search for parameters to preserve the same
behaviour. We use this order so that foreach() iterates over the opts
in their original order.

This will allow us handle options where multiple values for the same
parameter is allowed - e.g. -net user,hostfwd=

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd qemu_opts_validate() for post parsing validation
Mark McLoughlin [Tue, 6 Oct 2009 11:17:03 +0000 (12:17 +0100)]
Add qemu_opts_validate() for post parsing validation

Several qemu command line options have a parameter whose value affects
what other parameters are accepted for the option.

In these cases, we can have an empty description table in the
QemuOptsList and once the option has been parsed we can use a suitable
description table to validate the other parameters based on the value of
that parameter.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMake qemu_opts_parse() handle empty strings
Mark McLoughlin [Tue, 6 Oct 2009 11:17:02 +0000 (12:17 +0100)]
Make qemu_opts_parse() handle empty strings

Rather than making callers explicitly handle empty strings by using
qemu_opts_create(), we can easily have qemu_opts_parse() handle
empty parameter strings.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRemove double error message for -device option parsing
Mark McLoughlin [Tue, 6 Oct 2009 11:17:01 +0000 (12:17 +0100)]
Remove double error message for -device option parsing

qemu_opts_parse() gives a suitable error message in all failure cases
so we can remove the error message from the caller.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRemove double error message in qemu_option_set()
Mark McLoughlin [Tue, 6 Oct 2009 11:17:00 +0000 (12:17 +0100)]
Remove double error message in qemu_option_set()

qemu_opt_set() prints an error message in all failure cases, so
qemu_set_option() doesn't need to print another error.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRemove bogus error message from qemu_opts_set()
Mark McLoughlin [Tue, 6 Oct 2009 11:16:59 +0000 (12:16 +0100)]
Remove bogus error message from qemu_opts_set()

The only way qemu_opts_create() can fail is if a QemuOpts with that id
already exists and fail_if_exists=1. In that case, we already print
an error which makes more sense than the one in qemu_opts_set().

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDrop config_error(), use qemu_error() instead
Markus Armbruster [Tue, 6 Oct 2009 11:16:58 +0000 (12:16 +0100)]
Drop config_error(), use qemu_error() instead

Diagnostic output goes to stderr, except when we're in a monitor
command, when it goes to the monitor instead.

config_error() implements this with a monitor argument: if it's
non-null, report there, else to stderr.  This obliges us to pass the
monitor down various call chains, to make it available to
config_error().

The recently created qemu_error() doesn't need a monitor argument to
route output.  Use it.

There's one user-visible difference: config_error() prepended "qemu: "
to a message bound for stderr.  qemu_error() doesn't, which means the
prefix goes away with this commit.  If such a prefix is desired for
stderr, then I figure it should be slapped on all error messages, not
just the ones that used to go through config_error().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDon't exit() in config_error()
Markus Armbruster [Tue, 6 Oct 2009 11:16:57 +0000 (12:16 +0100)]
Don't exit() in config_error()

Propagating errors up the call chain is tedious.  In startup code, we
can take a shortcut: terminate the program.  This is wrong elsewhere,
the monitor in particular.

config_error() tries to cater for both customers: it terminates the
program unless its mon parameter tells it it's working for the
monitor.

Its users need to return status anyway (unless passing a null mon
argument, which none do), which their users need to check.  So this
automatic exit buys us exactly nothing useful.  Only the dangerous
delusion that we can get away without returning status.  Some of its
users fell for that.  Their callers continue executing after failure
when working for the monitor.

This bites monitor command host_net_add in two places:

* net_slirp_init() continues after slirp_hostfwd(), slirp_guestfwd(),
  or slirp_smb() failed, and may end up reporting success.  This
  happens for "host_net_add user guestfwd=foo": it complains about the
  invalid guest forwarding rule, then happily creates the user network
  without guest forwarding.

* net_client_init() can't detect slirp_guestfwd() failure, and gets
  fooled by net_slirp_init() lying about success.  Suppresses its
  "Could not initialize device" message.

Add the missing error reporting, make sure errors are checked, and
drop the exit() from config_error().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMake net_client_init() consume slirp_configs even on error
Markus Armbruster [Tue, 6 Oct 2009 11:16:56 +0000 (12:16 +0100)]
Make net_client_init() consume slirp_configs even on error

net_slirp_init() walks slirp_configs, and stops when it encounters one
that doesn't work.  Instead of consuming slirp_configs members there,
consume them in the sole caller.  This makes sure all are consumed.
Before, the tail starting with the non-working one was left in place,
where it made the next net_slirp_init() fail again.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoUse qemu_strdup() for VLANClientState string fields
Mark McLoughlin [Tue, 6 Oct 2009 11:16:55 +0000 (12:16 +0100)]
Use qemu_strdup() for VLANClientState string fields

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMove memset() from net_client_uninit() to net_client_init()
Mark McLoughlin [Tue, 6 Oct 2009 11:16:54 +0000 (12:16 +0100)]
Move memset() from net_client_uninit() to net_client_init()

zeroing a structure before using it is more common than zeroing after
using it. Also makes the setting of nd->used more obvious.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMake NICInfo string fields non-const
Mark McLoughlin [Tue, 6 Oct 2009 11:16:53 +0000 (12:16 +0100)]
Make NICInfo string fields non-const

We now only assign strdup()ed strings to these fields, never static
strings.

aliguori: fix build for ppc_prep and mips_jazz

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDon't assign a static string to NICInfo::model
Mark McLoughlin [Tue, 6 Oct 2009 11:16:52 +0000 (12:16 +0100)]
Don't assign a static string to NICInfo::model

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoUse qemu_strdup() for NICInfo string fields
Mark McLoughlin [Tue, 6 Oct 2009 11:16:51 +0000 (12:16 +0100)]
Use qemu_strdup() for NICInfo string fields

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRegister rtc options for -set
Jan Kiszka [Tue, 6 Oct 2009 11:16:50 +0000 (12:16 +0100)]
Register rtc options for -set

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRevert "Fix exit on 'pci_add' Monitor command"
Anthony Liguori [Mon, 5 Oct 2009 20:48:22 +0000 (15:48 -0500)]
Revert "Fix exit on 'pci_add' Monitor command"

This reverts commit 0148fde54c2478ea8a47c8dbfe4c0fb8bda4d996.

As requested by Luiz.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agooffer right-ctrl as a grab option
Dustin Kirkland [Thu, 17 Sep 2009 20:48:04 +0000 (15:48 -0500)]
offer right-ctrl as a grab option

Add support for -ctrl-grab to use the right-ctrl button to grab/release
the mouse in SDL.

The multi-button ctrl-alt and ctrl-alt-shift grab buttons present an
accessibility problem to users who cannot press more than one button
at a time.

https://bugs.edge.launchpad.net/ubuntu/+source/qemu-kvm/+bug/237635

Signed-off-by: Dustin Kirkland <kirkland@canonical.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoadd host_device format description to qemu-img manpage
Adrian Bridgett [Thu, 1 Oct 2009 10:56:10 +0000 (11:56 +0100)]
add host_device format description to qemu-img manpage

Converting files using "qemu-img convert" onto logical volumes (or any
block device) you need to use the currently undocumented "host_device"
format.  This patch adds the required documentation to the manpage.

Reported-by: Adrian Bridgett <adrian@bitcube.co.uk>
Signed-off-by: Adrian Bridgett <adrian@bitcube.co.uk>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoReorganize option rom (+linux kernel) loading.
Gerd Hoffmann [Thu, 1 Oct 2009 14:42:33 +0000 (16:42 +0200)]
Reorganize option rom (+linux kernel) loading.

This patch adds infrastructure to maintain memory regions which must be
restored on reset.  That includes roms (vga bios and option roms on pc),
but is also used when loading linux kernels directly.  Features:

  - loading files is supported.
  - passing blobs is supported.
  - target address range is supported (for optionrom area).
  - fixed target memory address is supported (linux kernel).

New in v2:
  - writes to ROM are done only at initial boot.
  - also handle aout and uimage loaders.
  - drop unused fread_targphys() function.

The final memory layout is created once all memory regions are
registered.  The option roms get addresses assigned and the
registered regions are checked against overlaps.  Finally all data
is copyed to the guest memory.

Advantages:

  (1) Filling memory on initial boot and on reset takes the same
      code path, making reset more robust.
  (2) The need to keep track of the option rom load address is gone.
  (3) Due to (2) option roms can be loaded outside pc_init().  This
      allows to move the pxe rom loading into the nic drivers for
      example.

Additional bonus:  There is a 'info roms' monitor command now.

The patch also switches over pc.c and removes the
option_rom_setup_reset() and load_option_rom() functions.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoeepro100: support 16 bit read from SCBCmd (== 2)
=?UTF-8?q?Reimar=20D=C3=B6ffinger?= [Fri, 2 Oct 2009 16:39:41 +0000 (18:39 +0200)]
eepro100: support 16 bit read from SCBCmd (== 2)

This is necessary to support OpenBSD 4.2 install, without
this change it triggers an assert.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agotarget-i386: move recently added vmstate fields at the end of the structure
Aurelien Jarno [Mon, 5 Oct 2009 20:41:04 +0000 (22:41 +0200)]
target-i386: move recently added vmstate fields at the end of the structure

This reduce the impact on hosts that have addressing modes with limited
offsets. Suggested by Laurent Desnogues.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoblock/raw: Add create_options for host_device
Kevin Wolf [Thu, 1 Oct 2009 10:35:49 +0000 (12:35 +0200)]
block/raw: Add create_options for host_device

Today host_devices have a create function, so they also need a create_options
field to prevent qemu-img from complaining.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoImprove error reporting on file access
Justin M. Forbes [Thu, 1 Oct 2009 14:42:56 +0000 (09:42 -0500)]
Improve error reporting on file access

By making the error reporting include strerror(errno), it gives the user
a bit more indication as to why qemu failed.  This is particularly
important for people running qemu as a non root user.

Signed-off-by: Justin M. Forbes <jforbes@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoWin32: Fix vnc support.
Stefan Weil [Thu, 1 Oct 2009 18:53:12 +0000 (20:53 +0200)]
Win32: Fix vnc support.

Without this patch, qemu on windows crashes as soon
as a vnc client connects.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agox86: fix miss merge
Juan Quintela [Mon, 5 Oct 2009 18:30:32 +0000 (20:30 +0200)]
x86: fix miss merge

There was a missmerge, and then we got a tail recursive call to cpu_post_load
without case base :)

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRename pci_create_noinit() to pci_create()
Markus Armbruster [Fri, 25 Sep 2009 01:53:53 +0000 (03:53 +0200)]
Rename pci_create_noinit() to pci_create()

It's qdev_create() specialized for PCI, so name it accordingly.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agopci_create() is now unused, remove it
Markus Armbruster [Fri, 25 Sep 2009 01:53:52 +0000 (03:53 +0200)]
pci_create() is now unused, remove it

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoFix pci_add nic not to exit on bad model
Markus Armbruster [Fri, 25 Sep 2009 01:53:51 +0000 (03:53 +0200)]
Fix pci_add nic not to exit on bad model

Monitor command "pci_add ADDR nic model=MODEL" uses pci_nic_init() to
create the NIC.  When MODEL is unknown or "?", this prints to stderr
and terminates the program.

Change pci_nic_init() not to treat "?" specially, and to return NULL
on failure.  Switch uses during startup to new convenience wrapper
pci_nic_init_nofail(), which behaves just like pci_nic_init() used to
do.

Bonus bug fix: we now check for qdev_init() failing there.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>