aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-09-04monitor: Port handler_1 to use QDictLuiz Capitulino
This commit ports command handlers that receive one argument to use the new monitor's dictionary. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04monitor: Port handler_0 to use QDictLuiz Capitulino
This commit ports command handlers that receive no arguments to use the new monitor's dictionary. It might seem no sense to do this, as the handlers have no arguments, but at the end of this porting work all handlers will have the same structure. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04monitor: Export QDict headerLuiz Capitulino
Command handlers will have to use QDict functions, so export qdict.h through monitor.h. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04monitor: Setup a QDict with arguments to handlersLuiz Capitulino
With this commit monitor_handle_command() will be able to setup a QDict with arguments to command handlers. However, the current 'args[]' method is still being used, next changes will port commands to get their arguments from the dictionary. Two changes are worth noting: 1. The '/' argument type always adds the following standard keys in the dictionary: 'count', 'format' and 'size'. This way, the argument name used in the 'args_type' string doesn't matter 2. The optional argument type '?' doesn't need to pass the additional 'has_arg' argument, hanlders can do the same check with qdict_haskey() Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04monitor: New format for handlers argument typesLuiz Capitulino
Current handlers argument types, as defined in qemu-monitor.hx file, are a sequence of chars where each one represents one argument type of the command handler. The number of chars is also used to know how many arguments a given handler accepts. This commit defines a new format, which makes mandatory the use of a name for each argument. For example, do_eject() command handler is currently defined as: { "eject", "-fB", do_eject, ... } With the new format it becomes: { "eject", "force:-f,filename:B", do_eject, ... } This way the Monitor will be capable of setting up a dictionary, using each argument's name as the key and the argument itself as the value. This commit also adds two new functions: key_get_info() and next_arg_type(), both are used to parse the new format. Currently key_get_info() consumes the 'key' part of the new format and discards it, this way the current parsing code is not affected by this change. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Add wrappers to functions used by the MonitorLuiz Capitulino
Some functions exported to be used by the Monitor as command handlers are also called in other places as regular functions. When those functions got ported to use the Monitor dictionary to pass argments, the callers will have to setup a dictionary to be able to call them. To avoid this problem, this commit add wrappers to those functions, so that we change the wrapper to accept the dictionary, letting the current functions as is. The following wrappers are being added: - do_help_cmd() - do_pci_device_hot_remove() Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Introduce QDictLuiz Capitulino
QDict is a high-level dictionary data type that can be used to store a collection of QObjects. A unique key is associated with only one QObject. The following functions are available: - qdict_new() Create a new QDict - qdict_put() Add a new 'key:object' pair - qdict_get() Get the QObject of a given key - qdict_del() Delete a 'key:object' pair - qdict_size() Return the size of the dictionary - qdict_haskey() Check if a given 'key' exists Some high-level helpers to operate on QStrings and QInts objects are also provided. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Introduce QStringLuiz Capitulino
QString is a high-level data type that can be used to represent C strings. The following functions are available: - qstring_from_str() Create a new QString - qstring_get_str() Get a pointer to the stored string Note that qstring_get_str() is too low-level for a data type like this, but it's interesting for quick read-only accesses. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Introduce QIntLuiz Capitulino
QInt is a high-level data type that can be used to represent integers, internally it stores an int64_t value. The following functions are available: - qint_from_int() Create a new QInt - qint_get_int() Get the stored integer Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Introduce QObjectLuiz Capitulino
This commit introduces the qobject.h header file, it contains basic QObject definitions and helper macros. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04ide: move cmd+irq from IDEState to IDEBus.Gerd Hoffmann
These variables are per bus, not per drive. Lets move them and cleanup things a bit. And fix the cmd migration bug for real. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04ide: pass down DriveInfo instead of BlockDriverStateGerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Support for multiple -monitor devicesJan Kiszka
Rebased version of Anthony's patch: Allow to specify more than one monitor terminal via the -monitor command line switch. This is particularly useful when libvirt or some other management tool already occupies the primary monitor but you need another one for debugging. The current clumsy workaround is to multiplex such additional terminals over a qemu character device (e.g. -serial mon:<device>). Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04net: Fix send queue orderingJan Kiszka
Ensure that packets enqueued for delayed delivery are dequeued in FIFO order. At least one simplistic guest TCP/IP stack became unhappy due to sporadically reordered packet streams. At this chance, switch the send queue implementation to TAILQ. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04do not issue ioctl from within the io threadGlauber Costa
According to Documentation/kvm/api.txt, (and well, to common sense), we should not be calling vcpu ioctls from within the iothread. Since vcpu initialization issues a vcpu ioctl, move it a little bit further in time to prevent it. Signed-off-by: Glauber Costa <glommer@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Delay sighandler_setup()Juan Quintela
If we are using --serial telnet:0:5555,server or similar, ^C will not kill qemu. We need to first connect using telnet, and the the ^C takes effect. Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Remove typedef for bool from eepro100.cAmit Shah
eepro100.c shouldn't have the need to do this in its local header file. And I recently started getting this: $ make -j3 ... CC x86_64-softmmu/eepro100.o /home/amit/src/qemu/hw/eepro100.c:112: error: two or more data types in declaration specifiers /home/amit/src/qemu/hw/eepro100.c:112: warning: useless type name in empty declaration make[1]: *** [eepro100.o] Error 1 so just remove the typedef and include <stdbool.h> instead. Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04add documentation for multi-core featuresAndre Przywara
extend QEMU's internal help and man page to cover the recently added multi-core feature. Signed-off-by: Andre Przywara <andre.przywara@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04piix3: use new vmstate infrastructureJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04i440fx: use new vmstate infrastructureJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04VMState: Fix sub-structs versioningJuan Quintela
We can't check the version in a substruct, it is not stored anywhere Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Update SaveVM versionsJuan Quintela
Now that we have all fields belonging to a PCIDevice, save each field on the device that it belongs. This means moving pci_irq_levels from PCII440FXState to PIIX3State. Old formats are loaded, but we only save on the new saner format. Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04pci_irq_levels[] belong to PIIX3StateJuan Quintela
With previous cleanups, now it is possible to put it where it belongs Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Save irq_state into PCII440FXStateJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04We can add piix3_dev now to PIIX3IrqStateJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Fold piix3_init() intto i440fx_initJuan Quintela
i440fx_init will now work properly if we don't setup piix3 Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Introduce PIIX3IrqState for piix3 irq's stateJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Create PIIX3State instead of using PCIDevice for PIIX3Juan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04We want the argument pass to set_irq to be opaqueJuan Quintela
piix_pci want to pass more things that the pic Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Move smm_enabled and isa_memory_mappings to PCII440FXStateJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Use PCII440FXState instead of generic PCIDeviceJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04low_set_irq is not used anywhereJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Split piix4 support from piix_pci.cJuan Quintela
Now mips_malta uses piix4 and pc's use piix_pci definitions Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04piix4 don't use pci_irq_levels at allJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04microblaze: Trap on illegal load/store sizes.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-04microblaze: Correct FPU decoding masks.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Compute masks for alignment checks at translation time.Edgar E. Iglesias
Thanks to Blue Swirl for reporting. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Trap on bus accesses to unmapped areas.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: MMU shows more respect to synthesis config.Edgar E. Iglesias
The microblaze MMU can be synthesized in different configurations. Have the MMU model show more respect to the chosen configuration. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Trap on unaligned data accesses.Edgar E. Iglesias
Untested... Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Trap on divizions by zero.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Correct mfs into r0.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Catch illegal insns and privilege violations.Edgar E. Iglesias
Raise illegal instruction exceptions when executing instructions that require units not available on the particulare microblaze configuration. Also trap priviliege violations made by userspace. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Add infrastructure for supporting hw exceptions.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Clear exception in dslot ESR bit if not in dslot.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03microblaze: Correct MMU debug log.Edgar E. Iglesias
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-02Fix warning on x86_64Kirill A. Shutemov
audio/esdaudio.c: In function 'qesd_thread_out': audio/esdaudio.c:136: error: format '%d' expects type 'int', but argument 3 has type 'ssize_t' audio/esdaudio.c: In function 'qesd_thread_in': audio/esdaudio.c:366: error: format '%d' expects type 'int', but argument 3 has type 'ssize_t' Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Signed-off-by: malc <av1474@comtv.ru>
2009-08-31Sparc32: port sun4c interrupt controller to VMState designBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-08-31Sparc32: port timers to VMState designBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-08-31Sparc32: timer field is never NULLBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>