mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
d1a0cf738d
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> and ./qemu-... -tpmdev help where the latter works similar to -soundhw help and shows a list of available TPM backends (for example 'passthrough'). Using the type parameter, the backend is chosen, i.e., 'passthrough' for the passthrough driver. The interpretation of the other parameters along with determining whether enough parameters were provided is pushed into the backend driver, which needs to implement the interface function 'create' and return a TPMDriverOpts structure if the VM can be started or 'NULL' if not enough or bad parameters were provided. Monitor support for 'info tpm' has been added. It for example prints the following: (qemu) info tpm TPM devices: tpm0: model=tpm-tis \ tpm0: type=passthrough,path=/dev/tpm0,cancel-path=/sys/devices/pnp0/00:09/cancel Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> Reviewed-by: Corey Bryant <coreyb@linux.vnet.ibm.com> Reviewed-by: Joel Schopp <jschopp@linux.vnet.ibm.com> Message-id: 1361987275-26289-2-git-send-email-stefanb@linux.vnet.ibm.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
121 lines
3.6 KiB
Text
121 lines
3.6 KiB
Text
#######################################################################
|
|
# Common libraries for tools and emulators
|
|
stub-obj-y = stubs/
|
|
util-obj-y = util/ qobject/ qapi/ trace/
|
|
|
|
#######################################################################
|
|
# block-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
block-obj-y = async.o thread-pool.o
|
|
block-obj-y += nbd.o block.o blockjob.o
|
|
block-obj-y += main-loop.o iohandler.o qemu-timer.o
|
|
block-obj-$(CONFIG_POSIX) += aio-posix.o
|
|
block-obj-$(CONFIG_WIN32) += aio-win32.o
|
|
block-obj-y += block/
|
|
block-obj-y += qapi-types.o qapi-visit.o
|
|
|
|
block-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o
|
|
block-obj-y += qemu-coroutine-sleep.o
|
|
ifeq ($(CONFIG_UCONTEXT_COROUTINE),y)
|
|
block-obj-$(CONFIG_POSIX) += coroutine-ucontext.o
|
|
else
|
|
ifeq ($(CONFIG_SIGALTSTACK_COROUTINE),y)
|
|
block-obj-$(CONFIG_POSIX) += coroutine-sigaltstack.o
|
|
else
|
|
block-obj-$(CONFIG_POSIX) += coroutine-gthread.o
|
|
endif
|
|
endif
|
|
block-obj-$(CONFIG_WIN32) += coroutine-win32.o
|
|
|
|
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
|
|
# Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add.
|
|
# only pull in the actual virtio-9p device if we also enabled virtio.
|
|
CONFIG_REALLY_VIRTFS=y
|
|
endif
|
|
|
|
######################################################################
|
|
# smartcard
|
|
|
|
libcacard-y += libcacard/cac.o libcacard/event.o
|
|
libcacard-y += libcacard/vcard.o libcacard/vreader.o
|
|
libcacard-y += libcacard/vcard_emul_nss.o
|
|
libcacard-y += libcacard/vcard_emul_type.o
|
|
libcacard-y += libcacard/card_7816.o
|
|
|
|
######################################################################
|
|
# Target independent part of system emulation. The long term path is to
|
|
# suppress *all* target specific code in case of system emulation, i.e. a
|
|
# single QEMU executable should support all CPUs and machines.
|
|
|
|
ifeq ($(CONFIG_SOFTMMU),y)
|
|
common-obj-y = $(block-obj-y) blockdev.o blockdev-nbd.o block/
|
|
common-obj-y += net/
|
|
common-obj-y += readline.o
|
|
common-obj-y += qdev-monitor.o device-hotplug.o
|
|
common-obj-$(CONFIG_WIN32) += os-win32.o
|
|
common-obj-$(CONFIG_POSIX) += os-posix.o
|
|
|
|
common-obj-$(CONFIG_LINUX) += fsdev/
|
|
|
|
common-obj-y += migration.o migration-tcp.o
|
|
common-obj-y += qemu-char.o #aio.o
|
|
common-obj-y += block-migration.o
|
|
common-obj-y += page_cache.o xbzrle.o
|
|
|
|
common-obj-$(CONFIG_POSIX) += migration-exec.o migration-unix.o migration-fd.o
|
|
|
|
common-obj-$(CONFIG_SPICE) += spice-qemu-char.o
|
|
|
|
common-obj-y += audio/
|
|
common-obj-y += hw/
|
|
|
|
common-obj-y += ui/
|
|
common-obj-y += bt-host.o bt-vhci.o
|
|
|
|
common-obj-y += dma-helpers.o
|
|
common-obj-y += vl.o
|
|
common-obj-y += tpm/
|
|
|
|
common-obj-$(CONFIG_SLIRP) += slirp/
|
|
|
|
common-obj-y += backends/
|
|
|
|
common-obj-$(CONFIG_SECCOMP) += qemu-seccomp.o
|
|
|
|
common-obj-$(CONFIG_SMARTCARD_NSS) += $(libcacard-y)
|
|
|
|
######################################################################
|
|
# qapi
|
|
|
|
common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o
|
|
common-obj-y += qmp.o hmp.o
|
|
endif
|
|
|
|
#######################################################################
|
|
# Target-independent parts used in system and user emulation
|
|
common-obj-y += qemu-log.o
|
|
common-obj-y += tcg-runtime.o
|
|
common-obj-y += hw/
|
|
common-obj-y += qom/
|
|
common-obj-y += disas/
|
|
|
|
######################################################################
|
|
# guest agent
|
|
|
|
# FIXME: a few definitions from qapi-types.o/qapi-visit.o are needed
|
|
# by libqemuutil.a. These should be moved to a separate .json schema.
|
|
qga-obj-y = qga/ qapi-types.o qapi-visit.o
|
|
|
|
vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
|
|
|
vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
|
|
|
|
QEMU_CFLAGS+=$(GLIB_CFLAGS)
|
|
|
|
nested-vars += \
|
|
stub-obj-y \
|
|
util-obj-y \
|
|
qga-obj-y \
|
|
block-obj-y \
|
|
common-obj-y
|
|
dummy := $(call unnest-vars)
|