History | View | Annotate | Download (16.7 kB)
Beautify makefile commands for generation of files with tracetool
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
tracetool: Rewrite infrastructure as python modules
The tracetool script is written in shell and has hit several portabilityproblems due to shell quirks or external tools across host platforms.Additionally the amount of string processing and lack of real data...
Merge commit 'ff71f2e8cacefae99179993204172bc65e4303df' into staging
target-lm32: add simple disassembler
Because binutils disassembler is based on libopcode, this is a rewrite fromscratch.
Signed-off-by: Michael Walle <michael@walle.cc>
qtest: add test framework
The idea behind qtest is pretty simple. Instead of executing a CPU via TCG orKVM, rely on an external process to send events to the device model that the CPUwould normally generate.
qtest presents itself as an accelerator. In addition, a new option is added to...
slotid: add slot id capability
This capability makes it possible for the guest toreport a unique chassis identifier to the user.
The spec also recommends making chassis indentifierpersist in eeprom.This isn't implemented.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
pci: add standard bridge device
This adds support for a standard pci to pci bridge,enabling support for more than 32 PCI devices in the system.Device hotplug is supported by means of SHPC controller.For guests with an SHPC driver, this allows robust hotplug...
shpc: standard hot plug controller
This adds support for SHPC interface, as defined by PCI StandardHot-Plug Controller and Subsystem Specification, Rev 1.0http://www.pcisig.com/specifications/conventional/pci_hot_plug/SHPC_10
Only SHPC intergrated with a PCI-to-PCI bridge is supported,...
qom: Introduce CPU class
Reintroduce CPUState as QOM object: It's abstract and derived directlyfrom TYPE_OBJECT for compatibility with the user emulators.The identifier CPUState avoids conflicts between CPU and the struct.
Introduce $(qom-twice-y) to build it separately for system and for user...
Merge remote-tracking branch 'kraxel/usb.44' into staging
qom: Add QOM support to user emulators
Link the Object base class and the module infrastructure for classregistration. Introduce $(universal-obj-y) for objects that are morecommon than $(common-obj-y), so that those only get built once.
Call QOM module init for type registration....
usb: the big rename
Reorganize usb source files. Create a new hw/usb/ directory and moveall usb source code to that place. Also make filenames a bit moredescriptive. Host adapters are prefixed with "hch-" now, usb deviceemulations are prefixed with "dev-". Fixup paths Makefile and include...
coroutine: adding configure option for sigaltstack coroutine backend
It's possible to use sigaltstack backend with --with-coroutine=sigaltstack
v2: changed from enable/disable configure flags
Signed-off-by: Alex Barcelo <abarcelo@ac.upc.edu>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
i8254: Factor out base class for KVM reuse
Applying the concept used for the *PICs once again: establish a baseclass for the i8254 that can be used both by the current user spaceemulation and the upcoming KVM in-kernel version. We share most of thepublic interface of the i8254, specifically to the pcspk, vmstate, reset...
qemu-ga: add Windows service integration
This allows qemu-ga to function as a Windows service:
- to install the service (will auto-start on boot): qemu-ga --service install - to start the service: net start qemu-ga - to stop the service: net stop qemu-ga...
qemu-ga: add initial win32 support
This adds a win32 channel implementation that makes qemu-ga functionalon Windows using virtio-serial (unix-listen/isa-serial not currentlyimplemented). Unlike with the posix implementation, we do not useGIOChannel for the following reasons:...
qemu-ga: move channel/transport functionality into wrapper class
This is mostly in preparation for the win32 port, which won't useGIO channels for reasons that will be made clearer later. Here theGAChannel class is just a loose wrapper around GIOChannel...
qemu-ga: separate out common commands from posix-specific ones
Many of the current RPC implementations are very much POSIX-specificand require complete re-writes for Windows. There are however a smallset of core guest agent commands that are common to both, and other...
qemu-ga: rename guest-agent-commands.c -> commands-posix.c
qemu-ga: fixes for win32 build of qemu-ga
Various stubs and #ifdefs to compile for Windows using mingwcross-build. Still has 1 linker error due to a dependency on theforthcoming win32 versions of the GAChannel/transport class.
jazz-led: compile it only twice
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qapi: add string-based visitors
String based visitors provide a consistent interface for parsingstrings to C values, as well as consuming C values as strings.They will be used to parse command-line options.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
make: Remove duplicate use of GLIB_CFLAGS
Makefile, Makefile.hw, Makefile.target and libcacard/Makefileadded GLIB_CFLAGS to QEMU_CFLAGS.
Makefile.objs does this, too, and is included by all otherMakefiles, so GLIB_CFLAGS were added twice (reported by malc)....
qdev: split out UI portions into a new function
qdev-monitor.c deals with the -device, device_add, and info qdm/qtreeinterfaces.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
container: make a decendent of Object
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>---v1 -> v2 - Add license (Paolo)
qom: add the base Object class (v2)
This class provides the main building block for QEMU Object Model and isextensively documented in the header file. It is largely inspired by GObject.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>---v1 -> v2...
coroutine: add co_sleep_ns() coroutine sleep function
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block: add image streaming block job
vga: compile cirrus_vga in hwlib
Remove target dependencies and compile Cirrus VGA in hwlib.
Address masking can be removed since memory API handles that now.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Merge remote-tracking branch 'qemu-kvm/uq/master' into staging
prep: Add i82374 DMA emulation
Prepare Intel 82374 emulation for use by Intel 82378 PCI->ISA bridge.
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Confine to CONFIG_I82374. Add VMState.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>Reviewed-by: Alexander Graf <agraf@suse.de>
prep: Add i82378 PCI-to-ISA bridge emulation
Prepare Intel 82378 emulation for use by PReP platforms.
Create ISA bus in this device (suggested by Markus).Rebase onto Memory API, mark memory ops as Little Endian....
i8259: Factor out base class for KVM reuse
Analogously to the APIC, we will reuse some parts of the user spacei8259 model for KVM. The base class provides a common device state, thevmstate, the property list, a reset core and some shared init bits.
This also introduces a common helper to instantiate a single i8259 chip...
xhci: Initial xHCI implementation
Based on the implementation from Hector Martin <hector@marcansoft.com>
Hectors's implementation completely sidestepped the qemu usb system andused libusb directly for usb device pass through. So I've ripped outthe libusb bits (or left them in disabled, as reference for further...
usb: add audio device model
This brings a usb audio device to qemu. Output only, fixed at16bit stereo @ 480000 Hz. Based on a patch fromH. Peter Anvin <hpa@linux.intel.com>
Usage: add '-device usb-audio' to your qemu command line.
Works sorta ok on a idle machine. Known issues:...
Merge remote-tracking branch 'aneesh/for-upstream' into staging
hw/9pfs: Add new proxy filesystem driver
Add new proxy filesystem driver to add root privilege to qemu process.It needs a helper process to be started by root user.
Following command line can be used to utilize proxy filesystem driver-virtfs proxy,id=<id>,mount_tag=<tag>,socket_fd=<socket-fd>...
hw/9pfs: Move pdu_marshal/unmarshal code to a seperate file
Move p9 marshaling/unmarshaling code to a separate file so thatproxy filesytem driver can use these calls. Also made marshalingcode generic to accept "struct iovec" instead of V9fsPDU.
Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>...
vmstate, memory: decouple vmstate from memory API
Currently creating a memory region automatically registers it forlive migration. This differs from other state (which is enumeratedin a VMStateDescription structure) and ties the live migration codeinto the memory core....
sheepdog: move coroutine send/recv function to generic code
Outside coroutines, avoid busy waiting on EAGAIN by temporarilymaking the socket blocking.
The API of qemu_recvv/qemu_sendv is slightly different fromdo_readv/do_writev because they do not handle coroutines. It...
qom: introduce root device
This is based on Jan's suggestion for how to do unique naming. The root deviceis the root of composition. All devices are reachable via child<> links fromthis device.
Makefile.objs: Remove libqemu_common.a from the comment
Remove libqemu_common.a from the comment.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Chen Wei-Ren <chenwj@iis.sinica.edu.tw>Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
hw/9pfs: Improve portability to older systems
handle fs driver require a set of newly added syscalls. Don'tCompile handle FS driver if those syscalls are not available.Instead of adding #ifdef for all those syscalls we check foropen by handle syscall. If that is available then rest of the...
Merge remote-tracking branch 'kwolf/for-anthony' into staging
Conflicts: block/vmdk.c
Merge remote-tracking branch 'aneesh/for-upstream-7' into staging
hw/9pfs: Add synthetic file system support using 9p
This patch create a synthetic file system with mount tagv_synth when -virtfs_synth command line option is specifiedin qemu. The synthetic file system can be mounted in guestusing 9p using the below command line...
iSCSI block driver
This provides built-in support for iSCSI to QEMU.
This has the advantage that the iSCSI devices need not be made visible to the host, which is useful if you have very many virtual machines and very many iscsi devices.It also has the benefit that non-root users of QEMU can access iSCSI devices across the network without requiring root privilege on the host....
tools: reorganize Makefile variables
- Add all dependencies of the block layer to block-obj-y, and all dependencies of QObject to qobject-obj-y
- Remove the block layer from tools-obj-y, add it to qemu-img, qemu-nbd, qemu-io
- Add qobject-obj-y and tools-obj-y wherever useful, remove duplicates...
main-loop: create main-loop.c
Merge remote-tracking branch 'aneesh/for-upstream-6' into staging
Conflicts: trace-events
i8259: Move to hw library
No target-specific bits remaining, let's move it over.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw: add OpenCores 10/100 Mbps Ethernet controller
This is OpenCores Ethernet MAC + subset of National SemiconductorsDP83838C PHY.OpenCores Ethernet MAC project: http://opencores.org/project,ethmac
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw/9pfs: Remove virtio-9p-debug.* infra to be replaced by Qemu Tracing.
Removing the existing debug infrastrucure as proposed to be replaced byQemu Tracing infrastructure.
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com>...
Merge remote-tracking branch 'qemu-kvm-tmp/memory/batch' into staging
Introduce PortioList
Add a type and methods for manipulating a list of disjoint I/O ports,used in some older hardware devices.
Based on original patch by Richard Henderson.
Signed-off-by: Richard Henderson <rth@twiddle.net>Signed-off-by: Avi Kivity <avi@redhat.com>
Merge remote-tracking branch 'qmp/queue/qmp' into staging
PPC: Move openpic to target specific code compilation
The MPIC has some funny feature where it maps different registers to an MMIOregion depending which CPU accesses them.
To be able to reflect that, we need to make OpenPIC be compiled in the targetcode, so it can access cpu_single_env....
qapi: convert query-name
A simple example conversion 'info name'. This also adds the new files forQMP and HMP.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
qapi: use middle mode in QMP server
Use the new middle mode within the existing QMP server.
hw/9pfs: Add handle based fs driver
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
build: Move tracing objects into libuser on usermode emulation targets
This will apply libuser-specific compilation flags (like the ones added by--enable-user-pie), but keep softmmu emulation targets "as-is".
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>...
g364fb: compile in hwlib
Compile g364fb in hwlib. Two compilations less for the full build.
Acked-by: Hervé Poussineau <hpoussin@reactos.org>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
build: fix missing trace dep on GENERATED_HEADERS
fc764105 added an include for qemu-common.h to trace/control.h, whichmade all users of this header file dependent on GENERATED_HEADERS. Sinceit's used by pretty much all the trace backends now, make trace-obj-y...
trace: add "-trace events" argument to control initial state
The "-trace events" argument can be used to provide a file with a list of traceevent names that will be enabled prior to starting execution, thus providingearly tracing.
This saves the user from manually toggling event states through the monitor...
trace: [stderr] add support for dynamically enabling/disabling events
Uses the generic interface provided in "trace/control.h" in order to providea programmatic interface as well as command line and monitor controls.
Signed-off-by: Fabien Chouteau <chouteau@adacore.com>...
build: [simple] Include qemu-timer-common.o in trace-obj-y
Helper programs like qemu-ga use tracing primitives, but qemu-timer-common.o(also used by simpletrace.o) is not necessarily included in the linkage line.
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
trace: [make] replace 'ifeq' with values in CONFIG_TRACE_*
trace: move backend-specific code into the trace/ directory
trace: avoid conditional code compilation during option parsing
A default implementation for backend-specific routines is provided in"trace/default.c", which backends can override by setting "trace_default=no" in"configure".
Improvements to libtool support.
Improvements to the libtool support in QEMU. Replace hard codedlibtool in the infrastructure with $(LIBTOOL) and allowoverriding the libtool binary used via the configurescript.
Reviewed-by: Andreas F=E4rber <andreas.faerber@web.de>...
guest agent: remove uneeded dependencies
This patch tries to cull any uneeded library dependencies from the guestagent to improve portability across various distros. We do so by beingas explicit as possible about in-tree dependencies rather than relying...
Remove qemu_malloc/qemu_free
Make glib mandatory and fixup utils appropriately
hw/9pfs: Add yield support to lstat coroutine
hw/9pfs: Add yield support to xattr related coroutine
This include llistxattr and lgetxattr.
hw/9pfs: Add yield support for readdir related coroutines
This include readdir, telldir, seekdir, rewinddir.
hw/9pfs: Add yeild support for readlink
Signed-off-by: Venkateswararao Jujjuri (JV) <jvrao@linux.vnet.ibm.com>Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
[virtio-9p] Add infrastructure to support glib threads and coroutines.
This patch is originally made by Arun Bharadwaj for glib support.Later Harsh Prateek Bora added coroutines support.This version implemented with suggestions fromStefan Hajnoczi <stefanha@linux.vnet.ibm.com>....
Merge remote-tracking branch 'kiszka/queues/slirp' into staging
Merge remote-tracking branch 'kraxel/usb.22' into staging
usb-hid: split hid code to hw/hid.[ch]
Almost pure code motion. Unstatic hid interface functions and addthem to the header file. Some renames. Some code style cleanups.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
usb: use iovecs in USBPacket
Zap data pointer from USBPacket, add a QEMUIOVector instead.Add a bunch of helper functions to manage USBPacket data.Switch over users to the new interface.
Note that USBPacket->len was used for two purposes: First topass in the buffer size and second to return the number of...
Simple ARP table
This patch adds a simple ARP table in Slirp and also adds handling ofgratuitous ARP requests.
Signed-off-by: Fabien Chouteau <chouteau@adacore.com>Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
block: Add bdrv_co_readv/writev
Add new block driver callbacks bdrv_co_readv/writev, which work on aQEMUIOVector like bdrv_aio_*, but don't need a callback. The function may onlybe called inside a coroutine, so a block driver implementing this interface can...
coroutines: Locks
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
coroutine: introduce coroutines
Asynchronous code is becoming very complex. At the same timesynchronous code is growing because it is convenient to write.Sometimes duplicate code paths are even added, one synchronous and theother asynchronous. This patch introduces coroutines which allow code...
coroutine: implement coroutines using gthread
On platforms that don't support makecontext(3) use gthread basedcoroutine implementation.
Darwin has makecontext(3) but getcontext(3) is stubbed out to returnENOTSUP. Andreas Färber <andreas.faerber@web.de> debugged this and...
Merge remote-tracking branch 'qmp/for-anthony' into staging
USB: add usb network redirection support
This patch adds support for a usb-redir device, which takes a chardevas a communication channel to an actual usbdevice using the usbredir protocol.
Compiling the usb-redir device requires usbredir-0.3 to be installed for...
qapi: add QMP command registration/lookup functions
Registration/lookup functions for that provide a lookup table fordispatching QMP commands.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
qapi: add QMP dispatch functions
Given an object recieved via QMP, this code uses the dispatch tableprovided by qmp_registry.c to call the corresponding marshalling/dispatchfunction and format return values/errors for delivery to the QMP.Currently only synchronous QMP functions are supported, but this will...
Add hard build dependency on glib
GLib is an extremely common library that has a portable thread implementationalong with tons of other goodies.
GLib and GObject have a fantastic amount of infrastructure we can leverage inQEMU including an object oriented programming infrastructure....
qapi: add QAPI visitor core
Base definitions/includes for Visiter interface used by generatedvisiter/marshalling code.
Includes a GenericList type. Our lists require an embedded element.Since these types are generated, if you want to use them in a different...
qapi: add QMP input visitor
A type of Visiter class that is used to walk a qobject'sstructure and assign each entry to the corresponding native C type.Command marshaling function will use this to pull out QMP commandparameters recieved over the wire and pass them as native arguments...
qapi: add QMP output visitor
Type of Visiter class that serves as the inverse of the input visitor:it takes a series of native C types and uses their values to construct acorresponding QObject. The command marshaling/dispatcher functions willuse this to convert the output of QMP functions into a QObject that can...
qapi: add QAPI dealloc visitor
Type of Visitor class that can be passed into a qapi-generated Ctype's visitor function to free() any heap-allocated data types.
Avoid CPU endian memory accesses in devices
Don't compile virtio.c in hwlib, it depends on memory accessesperformed in CPU endianness.
Make loads and stores in CPU endianness unavailable to devicesand poison them to avoid further bugs.
Acked-by: Alexander Graf <agraf@suse.de>...
xen: Clean up build system
Introduce CONFIG_XEN_BACKEND so that this new config solely controls thetarget-independent backend build and CONFIG_XEN can focus on per-targetbuilding.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Alexander Graf <agraf@suse.de>
Merge branch 'cocoa-for-upstream' of git://repo.or.cz/qemu/afaerber
libcacard: add libcacard.la target
No flag to configure is required. Instead, added a libcacard.la target thatis not built by default, only when requested explicitly via:
mkdir buildcd build../configuremake libcacard.lamake install-libcacard
Uses libtool to do actual linking of object files and shared library, and...