Commit Graph

9177 Commits

Author SHA1 Message Date
Jan Kiszka
ad323081aa pcnet: Restart poll timer on pcnet_start
Just like we call into pcnet_poll_timer on stop, we need to call it on
start to trigger the setup of the poll timer.

Patchworks-ID: 35313
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:22 -05:00
Jan Kiszka
efb56cf7c2 pcnet: Drop unused recv_pos field
This state field was never used, simply remained 0. Drop it from the
PCNetState and update the save/restore code accordingly, keeping
backward compatibility.

Patchworks-ID: 35314
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:21 -05:00
Luiz Capitulino
8f3cec0be8 monitor: Convert do_info_cpus() to QObject
Each CPU information is stored in a QDict and the returned
QObject is a QList of all CPUs.

The QDict contains the following information:

- "CPU": cpu index
- "current": "yes" or "no"
- "pc": current PC
- "halted": "yes" or "no"

The user output in the Monitor should not change and the
future monitor protocol is expected to emit something like:

[ { "CPU": 0, "current": "yes", "pc": 0x..., "halted": "no" },
{ "CPU": 1, "current": "no",  "pc": 0x..., "halted": "yes" } ]

which corresponds to the following user output:

* CPU #0: pc=0x00000000fffffff0
CPU #1: pc=0x00000000fffffff0 (halted)

Patchworks-ID: 35352
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
cc1d9c7015 monitor: Convert do_info_balloon() to QObject
On success return a QInt with the balloon's value.

This also introduces monitor_print_balloon() to print the
balloon information in the user protocol.

Please, note that errors are not being converted yet.

Patchworks-ID: 35351
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
ab2d318762 monitor: Convert do_info_version() to QObject
The returned data is always a QString.

Also introduces monitor_print_qobject(), which can be used as
a standard way to print QObjects in the user protocol format.

Patchworks-ID: 35350
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
83fb1de2bb monitor: Convert do_balloon() to QObject
It is important to note that it never fails, as big refactoring
of the virtio code would be needed to get the proper error code.

Patchworks-ID: 35349
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
a1f896a041 monitor: Convert do_cont() to QObject
Appropriate error handling support will be needed to have
encrypted images working under the future machine protocol,
but this initial conversion will work with the current
user protocol.

Patchworks-ID: 35348
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
4307666463 monitor: Convert do_system_powerdown() to QObject
Patchworks-ID: 35346
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
c80d259e31 monitor: Convert do_system_reset() to QObject
Patchworks-ID: 35347
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
e0c97bdef8 monitor: Convert do_stop() to QObject
Patchworks-ID: 35343
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
b223f35f4e 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>
2009-10-08 21:17:19 -05:00
Luiz Capitulino
13c7425e1a 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
13917beeac 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
a2876f595b 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
af4ce882d5 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
910df89d87 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
d7f9b68971 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
3aa3dcfff6 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
a6fd08eb62 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>
2009-10-08 21:17:18 -05:00
Luiz Capitulino
d559ba1af2 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>
2009-10-08 21:17:17 -05:00
Juan Quintela
c62c4551b8 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>
2009-10-08 21:17:17 -05:00
Juan Quintela
93a604004a 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>
2009-10-08 21:17:17 -05:00
Juan Quintela
ee99ca01e8 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>
2009-10-08 21:17:17 -05:00
Juan Quintela
20a4afc421 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>
2009-10-08 21:17:17 -05:00
Juan Quintela
54bcf07471 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>
2009-10-08 21:17:17 -05:00
Juan Quintela
6a559be594 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>
2009-10-08 21:17:16 -05:00
Juan Quintela
4aa5b83fd1 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>
2009-10-08 21:17:16 -05:00
Juan Quintela
d9b44620c5 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>
2009-10-08 21:17:16 -05:00
Juan Quintela
03aba0e393 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>
2009-10-08 21:17:15 -05:00
Juan Quintela
3c848e2ad8 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>
2009-10-08 21:17:15 -05:00
Juan Quintela
92eb6b4e11 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>
2009-10-08 21:17:15 -05:00
Juan Quintela
976ca9abee 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>
2009-10-08 21:17:14 -05:00
Juan Quintela
ae573db3cf 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>
2009-10-08 21:17:13 -05:00
Juan Quintela
b21fd8e60a 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>
2009-10-08 21:17:13 -05:00
Juan Quintela
5f74377c3d 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>
2009-10-08 21:17:13 -05:00
Juan Quintela
626b2a65d6 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>
2009-10-08 21:17:12 -05:00
Juan Quintela
2f3c407d81 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>
2009-10-08 21:17:12 -05:00
Juan Quintela
9f376df1b2 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>
2009-10-08 21:17:12 -05:00
Juan Quintela
065c7a36df 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>
2009-10-08 21:17:12 -05:00
Juan Quintela
7807feeff9 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>
2009-10-08 21:17:11 -05:00
Juan Quintela
86e1d113da 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>
2009-10-08 21:17:11 -05:00
Juan Quintela
185c66c81d 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>
2009-10-08 21:17:11 -05:00
Juan Quintela
642575843f 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>
2009-10-08 21:17:11 -05:00
Juan Quintela
3d0f151783 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>
2009-10-08 21:17:11 -05:00
Juan Quintela
fe0d4d3f77 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>
2009-10-08 21:17:10 -05:00
Juan Quintela
1f3d3c8fd7 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>
2009-10-08 21:17:10 -05:00
Juan Quintela
91880d96a1 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>
2009-10-08 21:17:04 -05:00
Juan Quintela
25be210f69 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>
2009-10-08 21:17:03 -05:00
Juan Quintela
e5efe7f5d2 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>
2009-10-08 21:17:03 -05:00
Juan Quintela
1215c6e761 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>
2009-10-08 21:17:03 -05:00