History | View | Annotate | Download (3.3 kB)
tpm: reorganize headers and split hardware part
The TPM subsystem does not have a full front-end/back-end separation.The sole available backend, tpm_passthrough, depends on the datastructures of the sole available frontend, tpm_tis.
However, we can at least try to split the user interface (tpm.c) from the...
configure: Don't fall back to gthread coroutine backend
The gthread coroutine backend is broken and does not produce a workingQEMU; it is only useful for some very limited debugging situations.Clean up the backend selection logic in configure so that it now runs...
Support for TPM command line options
This patch adds support for TPM command line options.The command line options supported here are
./qemu-... -tpmdev passthrough,path=<path to TPM device>,id=<id> -device tpm-tis,tpmdev=<id>,id=<other id>...
hw: move device-hotplug.o to toplevel, compile it once
The situation with device-hotplug.c is similar to qdev-monitor.c.Add a stub for pci_drive_hot_add, so that it can be compiled once,and move it out of hw/.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw: move qdev-monitor.o to toplevel directory
qdev-monitor.c is the only "core qdev" file that is not used inuser-mode emulation, and it does not define anything that is usedby hardware models. Remove it from the hw/ directory andremove hw/qdev-monitor.h from hw/qdev.h too; this requires...
qtest: Add MMIO support
Introduce [qtest_]{read,write}[bwlq]() libqtest functions andcorresponding QTest protocol commands to replace local versions inlibi2c-omap.c.
Also convert m48t59-test's cmos_{read,write}_mmio() to {read,write}b().
Signed-off-by: Andreas Färber <afaerber@suse.de>...
Move XBZRLE encoding code to a separate file to allow testing
Signed-off-by: Orit Wasserman <owasserm@redhat.com>Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>Reviewed-by: Eric Blake <eblake@redhat.com>
build: remove extra-obj-y
extra-obj-y is somewhat complicated to understand. Replace it with aspecial CONFIG_ALL symbol that is defined only at toplevel.This limits the case of directories defining more than one*-obj-y target.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>...
build: remove universal-obj-y
All of universal-obj-y, user-obj-y (right now unused) and common-obj-y canbe unified into common-obj-y if we take care of defining CONFIG_SOFTMMUand CONFIG_USER_ONLY in the toplevel makefile. This is similar to howwe define symbols for hardware components....
build: use -$(CONFIG_SECCOMP) instead of ifeq
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Acked-by: Andreas Färber <afaerber@suse.de>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
build: move around libcacard-y definition
It is also needed if !CONFIG_SOFTMMU, unlike everything that surrounds it.Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
build: move QAPI definitions for QEMU out of qapi-obj-y
There is no reason why for example qemu-ga should include all thedefinitions for the QEMU monitor. However, there are a fewthat are needed (qapi_free_SocketAddress, qapi_free_InetSocketAddress,ErrorClass_lookup). These should be moved to a separate "core"...
build: move base QAPI files to libqemuutil.a
build: move version-obj-y to the generic LINK rule
There is no reason for it to be in block-obj-y, in particular.
build: remove coroutine-obj-y
Just fold it into block-obj-y.
build: fold trace-obj-y into libqemuutil.a
build: rename oslib-obj-y to util-obj-y
This prepares the creation of libqemuutil.a in the next patch.
build: move util-obj-y to libqemuutil.a
Use a static library to eliminate repetition in the linking rules.
build: move files away from tools-obj-y, common-obj-y, user-obj-y
Split them between libqemuutil.a and, for those used by qemu-img/io/nbd,block-obj-y.
Static libraries ensure that binaries such as qemu-ga do not includeunused modules.
build: move libqemuutil.a components to util/
build: move qobject files to qobject/ and libqemuutil.a
build: consolidate multiple variables into universal-obj-y
The directory descent mechanism, and a less-flat tree both helpedin making some *-obj-y definitions very short. Many of theseoften end up in universal-obj-y, and used to be separate onlybecause of libuser (which is now part of history...)....
stubs: fully replace qemu-tool.c and qemu-user.c
qdev: Include qdev code into *-user, too
The code depends on some functions from qemu-option.o, so addqemu-option.o to universal-obj-y to make sure it's included.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>Signed-off-by: Andreas Färber <afaerber@suse.de>
tests: add gcov support
Add support for compiling for GCOV test coverage, enabledwith '--enable-gcov' during configure.
Test coverage will be reported after each test.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
build: Use separate makefile for "trace/"
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>--Changes in v2:
migration: move buffered_file.c code into migration.c
This only moves the code (also from buffered_file.h to migration.h).Fix whitespace until checkpatch is happy.
Signed-off-by: Juan Quintela <quintela@redhat.com>
qemu-ga: move qemu-ga files to qga/
ui: move files to ui/ and include/ui/
net: move net.c to net/
build: kill libdis, move disassemblers to disas/
build: kill libuser
Merge commit '1dd3a74d2ee2d873cde0b390b536e45420b3fe05' into HEAD
build: replace weak symbols with a static library
Weak symbols were a nice idea, but they turned out not to be a good one.Toolchain support is just too sparse, in particular llvm-gcc is totallybroken.
This patch uses a surprisingly low-tech approach: a static library....
rng: add RndBackend abstract object class
This is the backend used by devices that need to request entropy.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
pflib: unused, remove it.
Replaced by pixman library.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Merge remote-tracking branch 'kraxel/pixman.v3' into staging
pixman: helper functions
Add some helper functions which will be putinto use by following patches.
raw-posix: move linux-aio.c to block/
raw: merge posix-aio-compat.c into block/raw-posix.c
Making the qemu_paiocb specific to raw devices will let us access membersof the BDRVRawState arbitrarily.
aio: add generic thread-pool facility
Add a generic thread-pool. The code is roughly based on posix-aio-compat.c,with some changes, especially the following:
- use QemuSemaphore instead of QemuCond;
- separate the state of the thread from the return code of the worker...
aio: add Win32 implementation
The Win32 implementation will only accept EventNotifiers, thus a fewdrivers are disabled under Windows. EventNotifiers are a good matchfor the GSource implementation, too, because the Win32 port of gliballows to place their HANDLEs in a GPollFD....
build: do not include main loop where it is not actually used
event_notifier: add Win32 implementation
aio: provide platform-independent API
This adds to aio.c a platform-independent API based on EventNotifiers, thatcan be used by both POSIX and Win32.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
build: move cutils.o and qemu-timer-common.o to oslib-obj-y
janitor: move iovector functions out of cutils.c
This removes the dependency of cutils.c on iov.c, and lets us removeiov.o from several builds.
qmp: add NBD server commands
Adding an NBD server inside QEMU is trivial, since all the logic isin nbd.c and can be shared easily between qemu-nbd and QEMU itself.The main difference is that qemu-nbd serves a single unnamed export,while QEMU serves named exports....
block: add close notifiers
The first user of close notifiers will be the embedded NBD server.It would be possible to use them to do some of the ad hoc processing(e.g. for block jobs and I/O limits) that is currently done bybdrv_close.
Acked-by: Kevin Wolf <kwolf@redhat.com>...
build: add QAPI files to the tools
We need them because qemu-sockets will soon be using SocketAddress.
Acked-by: Luiz Capitulino <lcapitulino@redhat.com>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Remove libhw
The entries for libhw* are no longer needed in .gitignore.
There is also no longer a difference between common-obj-y andhw-obj-y, so one of those two macros is sufficient.
Signed-off-by: Stefan Weil <sw@weilnetz.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
block: move job APIs to separate files
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Reviewed-by: Eric Blake <eblake@redhat.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
qemu: URI parsing library
Add a new URI parsing library to QEMU. The code has been borrowed fromlibxml2 and libvirt.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Adding support for libseccomp in configure and Makefile (v8)
Adding basic options to the configure script to use libseccomp or not.The default is set to 'no'. If the flag --enable-libseccomp is used, thescript will check for its existence using pkg-config....
Merge remote-tracking branch 'qmp/queue/qmp' into staging
qemu-ga: switch to the new error format on the wire
IMPORTANT: this BREAKS qemu-ga compatibility for the error response.
Instead of returning something like:
{ "error": { "class": "InvalidParameterValue", "data": {"name": "mode", "expected": "halt|powerdown|reboot" } } }...
Add cache handling functions
Add MRU page cache mechanism.The page are accessed by their address.
Signed-off-by: Benoit Hudzia <benoit.hudzia@sap.com>Signed-off-by: Petter Svard <petters@cs.umu.se>Signed-off-by: Aidan Shribman <aidan.shribman@sap.com>...
Merge remote-tracking branch 'mjt/mjt-iov2' into staging
qemu-log: move logging to qemu-log.c
Move logging functions from exec.c to qemu-log.c,compile it only once.
consolidate qemu_iovec_memset{,_skip}() into single function and use existing iov_memset()
This patch combines two functions into one, and replacesthe implementation with already existing iov_memset() fromiov.c.
The new prototype of qemu_iovec_memset():...
Revert "build: compile oslib-obj-y once"
This reverts commit 25f27a4f7160d077d6992e811021b4bc3a82abc1because of bsd-user breakage.
build: compile oslib-obj-y once
There is no difference in oslib-obj-y between user-mode and systemtargets. There used to be when user-mode could optionally becompiled with PIE.
build: libcacard Makefile cleanups
Build vscclient from toplevel Makefile, limit usage of vpath.
build: convert libhw to nested Makefile.objs
After this patch, the libhw* directories will have a hierarchythat mimics the source tree. This is useful because we do havea couple of files there that are in the top source directory.
build: move qga/ objects to nested Makefile.objs
build: move target-independent hw/ objects to nested Makefile.objs
This patch starts converting the hw/ directory. Some files in hw/are compiled once, some twice (32-/64-bit), some once per target.Each category is moved in a separate patch.
After this patch, the files that are compiled once will show the...
build: move slirp/ objects to nested Makefile.objs
build: move qapi/ objects to nested Makefile.objs
build: move ui/ objects to nested Makefile.objs
build: move audio/ objects to nested Makefile.objs
build: move block/ objects to nested Makefile.objs
build: move net/ objects to nested Makefile.objs
build: move fsdev/ objects to nested Makefile.objs
build: move rules for nesting to Makefile.objs
At this point we will start adding nesting behavior to other filesthan Makefile.target. Because Makefile.objs is included byMakefile.target, it is simpler to move the processing ofsubdirectories there.
To enable this, only add per-target files to obj-y. Use a separate...
build: adapt qom/Makefile and move it to Makefile.objs
qom/ already used a separate makefile. Convert it to use relativepaths, and make it declare both common-obj-y and user-obj-y. Thisway, the upper makefiles do not need to know that some QOM filesare compiled twice....
build: remove trace-nested-y
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.
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)....
container: make a decendent of Object
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>---v1 -> v2 - Add license (Paolo)