mirror of
https://github.com/qemu/qemu.git
synced 2024-12-18 17:53:40 +08:00
eabba580e6
This patch implements the read/write state machine. Operations are fully asynchronous and multiple operations may be active at any time. Allocating writes lock tables to ensure metadata updates do not interfere with each other. If two allocating writes need to update the same L2 table they will run sequentially. If two allocating writes need to update different L2 tables they will run in parallel. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
321 lines
11 KiB
Makefile
321 lines
11 KiB
Makefile
#######################################################################
|
|
# QObject
|
|
qobject-obj-y = qint.o qstring.o qdict.o qlist.o qfloat.o qbool.o
|
|
qobject-obj-y += qjson.o json-lexer.o json-streamer.o json-parser.o
|
|
qobject-obj-y += qerror.o
|
|
|
|
#######################################################################
|
|
# oslib-obj-y is code depending on the OS (win32 vs posix)
|
|
oslib-obj-y = osdep.o
|
|
oslib-obj-$(CONFIG_WIN32) += oslib-win32.o
|
|
oslib-obj-$(CONFIG_POSIX) += oslib-posix.o
|
|
|
|
#######################################################################
|
|
# block-obj-y is code used by both qemu system emulation and qemu-img
|
|
|
|
block-obj-y = cutils.o cache-utils.o qemu-malloc.o qemu-option.o module.o
|
|
block-obj-y += nbd.o block.o aio.o aes.o qemu-config.o
|
|
block-obj-$(CONFIG_POSIX) += posix-aio-compat.o
|
|
block-obj-$(CONFIG_LINUX_AIO) += linux-aio.o
|
|
|
|
block-nested-y += raw.o cow.o qcow.o vdi.o vmdk.o cloop.o dmg.o bochs.o vpc.o vvfat.o
|
|
block-nested-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o
|
|
block-nested-y += qed.o qed-gencb.o qed-l2-cache.o qed-table.o qed-cluster.o
|
|
block-nested-y += qed-check.o
|
|
block-nested-y += parallels.o nbd.o blkdebug.o sheepdog.o blkverify.o
|
|
block-nested-$(CONFIG_WIN32) += raw-win32.o
|
|
block-nested-$(CONFIG_POSIX) += raw-posix.o
|
|
block-nested-$(CONFIG_CURL) += curl.o
|
|
block-nested-$(CONFIG_RBD) += rbd.o
|
|
|
|
block-obj-y += $(addprefix block/, $(block-nested-y))
|
|
|
|
net-obj-y = net.o
|
|
net-nested-y = queue.o checksum.o util.o
|
|
net-nested-y += socket.o
|
|
net-nested-y += dump.o
|
|
net-nested-$(CONFIG_POSIX) += tap.o
|
|
net-nested-$(CONFIG_LINUX) += tap-linux.o
|
|
net-nested-$(CONFIG_WIN32) += tap-win32.o
|
|
net-nested-$(CONFIG_BSD) += tap-bsd.o
|
|
net-nested-$(CONFIG_SOLARIS) += tap-solaris.o
|
|
net-nested-$(CONFIG_AIX) += tap-aix.o
|
|
net-nested-$(CONFIG_HAIKU) += tap-haiku.o
|
|
net-nested-$(CONFIG_SLIRP) += slirp.o
|
|
net-nested-$(CONFIG_VDE) += vde.o
|
|
net-obj-y += $(addprefix net/, $(net-nested-y))
|
|
|
|
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS),yy)
|
|
# 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
|
|
fsdev-nested-$(CONFIG_VIRTFS) = qemu-fsdev.o
|
|
fsdev-obj-$(CONFIG_VIRTFS) += $(addprefix fsdev/, $(fsdev-nested-y))
|
|
|
|
######################################################################
|
|
# libqemu_common.a: 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.
|
|
|
|
common-obj-y = $(block-obj-y) blockdev.o
|
|
common-obj-y += $(net-obj-y)
|
|
common-obj-y += $(qobject-obj-y)
|
|
common-obj-$(CONFIG_LINUX) += $(fsdev-obj-$(CONFIG_LINUX))
|
|
common-obj-y += readline.o console.o cursor.o async.o qemu-error.o
|
|
common-obj-y += $(oslib-obj-y)
|
|
common-obj-$(CONFIG_WIN32) += os-win32.o
|
|
common-obj-$(CONFIG_POSIX) += os-posix.o
|
|
|
|
common-obj-y += tcg-runtime.o host-utils.o
|
|
common-obj-y += irq.o ioport.o input.o
|
|
common-obj-$(CONFIG_PTIMER) += ptimer.o
|
|
common-obj-$(CONFIG_MAX7310) += max7310.o
|
|
common-obj-$(CONFIG_WM8750) += wm8750.o
|
|
common-obj-$(CONFIG_TWL92230) += twl92230.o
|
|
common-obj-$(CONFIG_TSC2005) += tsc2005.o
|
|
common-obj-$(CONFIG_LM832X) += lm832x.o
|
|
common-obj-$(CONFIG_TMP105) += tmp105.o
|
|
common-obj-$(CONFIG_STELLARIS_INPUT) += stellaris_input.o
|
|
common-obj-$(CONFIG_SSD0303) += ssd0303.o
|
|
common-obj-$(CONFIG_SSD0323) += ssd0323.o
|
|
common-obj-$(CONFIG_ADS7846) += ads7846.o
|
|
common-obj-$(CONFIG_MAX111X) += max111x.o
|
|
common-obj-$(CONFIG_DS1338) += ds1338.o
|
|
common-obj-y += i2c.o smbus.o smbus_eeprom.o
|
|
common-obj-y += eeprom93xx.o
|
|
common-obj-y += scsi-disk.o cdrom.o
|
|
common-obj-y += scsi-generic.o scsi-bus.o
|
|
common-obj-y += usb.o usb-hub.o usb-$(HOST_USB).o usb-hid.o usb-msd.o usb-wacom.o
|
|
common-obj-y += usb-serial.o usb-net.o usb-bus.o
|
|
common-obj-$(CONFIG_SSI) += ssi.o
|
|
common-obj-$(CONFIG_SSI_SD) += ssi-sd.o
|
|
common-obj-$(CONFIG_SD) += sd.o
|
|
common-obj-y += bt.o bt-host.o bt-vhci.o bt-l2cap.o bt-sdp.o bt-hci.o bt-hid.o usb-bt.o
|
|
common-obj-y += bt-hci-csr.o
|
|
common-obj-y += buffered_file.o migration.o migration-tcp.o qemu-sockets.o
|
|
common-obj-y += qemu-char.o savevm.o #aio.o
|
|
common-obj-y += msmouse.o ps2.o
|
|
common-obj-y += qdev.o qdev-properties.o
|
|
common-obj-y += block-migration.o
|
|
common-obj-y += pflib.o
|
|
|
|
common-obj-$(CONFIG_BRLAPI) += baum.o
|
|
common-obj-$(CONFIG_POSIX) += migration-exec.o migration-unix.o migration-fd.o
|
|
common-obj-$(CONFIG_WIN32) += version.o
|
|
|
|
common-obj-$(CONFIG_SPICE) += ui/spice-core.o ui/spice-input.o ui/spice-display.o
|
|
|
|
audio-obj-y = audio.o noaudio.o wavaudio.o mixeng.o
|
|
audio-obj-$(CONFIG_SDL) += sdlaudio.o
|
|
audio-obj-$(CONFIG_OSS) += ossaudio.o
|
|
audio-obj-$(CONFIG_SPICE) += spiceaudio.o
|
|
audio-obj-$(CONFIG_COREAUDIO) += coreaudio.o
|
|
audio-obj-$(CONFIG_ALSA) += alsaaudio.o
|
|
audio-obj-$(CONFIG_DSOUND) += dsoundaudio.o
|
|
audio-obj-$(CONFIG_FMOD) += fmodaudio.o
|
|
audio-obj-$(CONFIG_ESD) += esdaudio.o
|
|
audio-obj-$(CONFIG_PA) += paaudio.o
|
|
audio-obj-$(CONFIG_WINWAVE) += winwaveaudio.o
|
|
audio-obj-$(CONFIG_AUDIO_PT_INT) += audio_pt_int.o
|
|
audio-obj-$(CONFIG_AUDIO_WIN_INT) += audio_win_int.o
|
|
audio-obj-y += wavcapture.o
|
|
common-obj-y += $(addprefix audio/, $(audio-obj-y))
|
|
|
|
ui-obj-y += keymaps.o
|
|
ui-obj-$(CONFIG_SDL) += sdl.o sdl_zoom.o x_keymap.o
|
|
ui-obj-$(CONFIG_CURSES) += curses.o
|
|
ui-obj-y += vnc.o d3des.o
|
|
ui-obj-y += vnc-enc-zlib.o vnc-enc-hextile.o
|
|
ui-obj-y += vnc-enc-tight.o vnc-palette.o
|
|
ui-obj-$(CONFIG_VNC_TLS) += vnc-tls.o vnc-auth-vencrypt.o
|
|
ui-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
|
|
ui-obj-$(CONFIG_COCOA) += cocoa.o
|
|
ifdef CONFIG_VNC_THREAD
|
|
ui-obj-y += vnc-jobs-async.o
|
|
else
|
|
ui-obj-y += vnc-jobs-sync.o
|
|
endif
|
|
common-obj-y += $(addprefix ui/, $(ui-obj-y))
|
|
|
|
common-obj-y += iov.o acl.o
|
|
common-obj-$(CONFIG_THREAD) += qemu-thread.o
|
|
common-obj-$(CONFIG_IOTHREAD) += compatfd.o
|
|
common-obj-y += notify.o event_notifier.o
|
|
common-obj-y += qemu-timer.o qemu-timer-common.o
|
|
|
|
slirp-obj-y = cksum.o if.o ip_icmp.o ip_input.o ip_output.o
|
|
slirp-obj-y += slirp.o mbuf.o misc.o sbuf.o socket.o tcp_input.o tcp_output.o
|
|
slirp-obj-y += tcp_subr.o tcp_timer.o udp.o bootp.o tftp.o
|
|
common-obj-$(CONFIG_SLIRP) += $(addprefix slirp/, $(slirp-obj-y))
|
|
|
|
# xen backend driver support
|
|
common-obj-$(CONFIG_XEN) += xen_backend.o xen_devconfig.o
|
|
common-obj-$(CONFIG_XEN) += xen_console.o xenfb.o xen_disk.o xen_nic.o
|
|
|
|
######################################################################
|
|
# libuser
|
|
|
|
user-obj-y =
|
|
user-obj-y += envlist.o path.o
|
|
user-obj-y += tcg-runtime.o host-utils.o
|
|
user-obj-y += cutils.o cache-utils.o
|
|
|
|
######################################################################
|
|
# libhw
|
|
|
|
hw-obj-y =
|
|
hw-obj-y += vl.o loader.o
|
|
hw-obj-$(CONFIG_VIRTIO) += virtio.o virtio-console.o
|
|
hw-obj-y += fw_cfg.o
|
|
# FIXME: Core PCI code and its direct dependencies are required by the
|
|
# QMP query-pci command.
|
|
hw-obj-y += pci.o pci_bridge.o
|
|
hw-obj-$(CONFIG_PCI) += msix.o msi.o
|
|
hw-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
|
|
hw-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o
|
|
hw-obj-y += watchdog.o
|
|
hw-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
|
|
hw-obj-$(CONFIG_ECC) += ecc.o
|
|
hw-obj-$(CONFIG_NAND) += nand.o
|
|
hw-obj-$(CONFIG_PFLASH_CFI01) += pflash_cfi01.o
|
|
hw-obj-$(CONFIG_PFLASH_CFI02) += pflash_cfi02.o
|
|
|
|
hw-obj-$(CONFIG_M48T59) += m48t59.o
|
|
hw-obj-$(CONFIG_ESCC) += escc.o
|
|
hw-obj-$(CONFIG_EMPTY_SLOT) += empty_slot.o
|
|
|
|
hw-obj-$(CONFIG_SERIAL) += serial.o
|
|
hw-obj-$(CONFIG_PARALLEL) += parallel.o
|
|
hw-obj-$(CONFIG_I8254) += i8254.o
|
|
hw-obj-$(CONFIG_PCSPK) += pcspk.o
|
|
hw-obj-$(CONFIG_PCKBD) += pckbd.o
|
|
hw-obj-$(CONFIG_USB_UHCI) += usb-uhci.o
|
|
hw-obj-$(CONFIG_USB_OHCI) += usb-ohci.o
|
|
hw-obj-$(CONFIG_FDC) += fdc.o
|
|
hw-obj-$(CONFIG_ACPI) += acpi.o acpi_piix4.o
|
|
hw-obj-$(CONFIG_APM) += pm_smbus.o apm.o
|
|
hw-obj-$(CONFIG_DMA) += dma.o
|
|
|
|
# PPC devices
|
|
hw-obj-$(CONFIG_OPENPIC) += openpic.o
|
|
hw-obj-$(CONFIG_PREP_PCI) += prep_pci.o
|
|
# Mac shared devices
|
|
hw-obj-$(CONFIG_MACIO) += macio.o
|
|
hw-obj-$(CONFIG_CUDA) += cuda.o
|
|
hw-obj-$(CONFIG_ADB) += adb.o
|
|
hw-obj-$(CONFIG_MAC_NVRAM) += mac_nvram.o
|
|
hw-obj-$(CONFIG_MAC_DBDMA) += mac_dbdma.o
|
|
# OldWorld PowerMac
|
|
hw-obj-$(CONFIG_HEATHROW_PIC) += heathrow_pic.o
|
|
hw-obj-$(CONFIG_GRACKLE_PCI) += grackle_pci.o
|
|
# NewWorld PowerMac
|
|
hw-obj-$(CONFIG_UNIN_PCI) += unin_pci.o
|
|
hw-obj-$(CONFIG_DEC_PCI) += dec_pci.o
|
|
# PowerPC E500 boards
|
|
hw-obj-$(CONFIG_PPCE500_PCI) += ppce500_pci.o
|
|
|
|
# MIPS devices
|
|
hw-obj-$(CONFIG_PIIX4) += piix4.o
|
|
|
|
# PCI watchdog devices
|
|
hw-obj-$(CONFIG_PCI) += wdt_i6300esb.o
|
|
|
|
hw-obj-$(CONFIG_PCI) += pcie.o pcie_aer.o pcie_port.o
|
|
|
|
# PCI network cards
|
|
hw-obj-$(CONFIG_NE2000_PCI) += ne2000.o
|
|
hw-obj-$(CONFIG_EEPRO100_PCI) += eepro100.o
|
|
hw-obj-$(CONFIG_PCNET_PCI) += pcnet-pci.o
|
|
hw-obj-$(CONFIG_PCNET_COMMON) += pcnet.o
|
|
hw-obj-$(CONFIG_E1000_PCI) += e1000.o
|
|
hw-obj-$(CONFIG_RTL8139_PCI) += rtl8139.o
|
|
|
|
hw-obj-$(CONFIG_SMC91C111) += smc91c111.o
|
|
hw-obj-$(CONFIG_LAN9118) += lan9118.o
|
|
hw-obj-$(CONFIG_NE2000_ISA) += ne2000-isa.o
|
|
|
|
# IDE
|
|
hw-obj-$(CONFIG_IDE_CORE) += ide/core.o
|
|
hw-obj-$(CONFIG_IDE_QDEV) += ide/qdev.o
|
|
hw-obj-$(CONFIG_IDE_PCI) += ide/pci.o
|
|
hw-obj-$(CONFIG_IDE_ISA) += ide/isa.o
|
|
hw-obj-$(CONFIG_IDE_PIIX) += ide/piix.o
|
|
hw-obj-$(CONFIG_IDE_CMD646) += ide/cmd646.o
|
|
hw-obj-$(CONFIG_IDE_MACIO) += ide/macio.o
|
|
hw-obj-$(CONFIG_IDE_VIA) += ide/via.o
|
|
hw-obj-$(CONFIG_AHCI) += ide/ahci.o
|
|
|
|
# SCSI layer
|
|
hw-obj-$(CONFIG_LSI_SCSI_PCI) += lsi53c895a.o
|
|
hw-obj-$(CONFIG_ESP) += esp.o
|
|
|
|
hw-obj-y += dma-helpers.o sysbus.o isa-bus.o
|
|
hw-obj-y += qdev-addr.o
|
|
|
|
# VGA
|
|
hw-obj-$(CONFIG_VGA_PCI) += vga-pci.o
|
|
hw-obj-$(CONFIG_VGA_ISA) += vga-isa.o
|
|
hw-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
|
|
hw-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
|
|
|
|
hw-obj-$(CONFIG_RC4030) += rc4030.o
|
|
hw-obj-$(CONFIG_DP8393X) += dp8393x.o
|
|
hw-obj-$(CONFIG_DS1225Y) += ds1225y.o
|
|
hw-obj-$(CONFIG_MIPSNET) += mipsnet.o
|
|
|
|
# Sound
|
|
sound-obj-y =
|
|
sound-obj-$(CONFIG_SB16) += sb16.o
|
|
sound-obj-$(CONFIG_ES1370) += es1370.o
|
|
sound-obj-$(CONFIG_AC97) += ac97.o
|
|
sound-obj-$(CONFIG_ADLIB) += fmopl.o adlib.o
|
|
sound-obj-$(CONFIG_GUS) += gus.o gusemu_hal.o gusemu_mixer.o
|
|
sound-obj-$(CONFIG_CS4231A) += cs4231a.o
|
|
sound-obj-$(CONFIG_HDA) += intel-hda.o hda-audio.o
|
|
|
|
adlib.o fmopl.o: QEMU_CFLAGS += -DBUILD_Y8950=0
|
|
hw-obj-$(CONFIG_SOUND) += $(sound-obj-y)
|
|
|
|
hw-obj-$(CONFIG_REALLY_VIRTFS) += virtio-9p-debug.o
|
|
hw-obj-$(CONFIG_VIRTFS) += virtio-9p-local.o virtio-9p-xattr.o
|
|
hw-obj-$(CONFIG_VIRTFS) += virtio-9p-xattr-user.o virtio-9p-posix-acl.o
|
|
|
|
######################################################################
|
|
# libdis
|
|
# NOTE: the disassembler code is only needed for debugging
|
|
|
|
libdis-y =
|
|
libdis-$(CONFIG_ALPHA_DIS) += alpha-dis.o
|
|
libdis-$(CONFIG_ARM_DIS) += arm-dis.o
|
|
libdis-$(CONFIG_CRIS_DIS) += cris-dis.o
|
|
libdis-$(CONFIG_HPPA_DIS) += hppa-dis.o
|
|
libdis-$(CONFIG_I386_DIS) += i386-dis.o
|
|
libdis-$(CONFIG_IA64_DIS) += ia64-dis.o
|
|
libdis-$(CONFIG_M68K_DIS) += m68k-dis.o
|
|
libdis-$(CONFIG_MICROBLAZE_DIS) += microblaze-dis.o
|
|
libdis-$(CONFIG_MIPS_DIS) += mips-dis.o
|
|
libdis-$(CONFIG_PPC_DIS) += ppc-dis.o
|
|
libdis-$(CONFIG_S390_DIS) += s390-dis.o
|
|
libdis-$(CONFIG_SH4_DIS) += sh4-dis.o
|
|
libdis-$(CONFIG_SPARC_DIS) += sparc-dis.o
|
|
|
|
######################################################################
|
|
# trace
|
|
|
|
ifeq ($(TRACE_BACKEND),dtrace)
|
|
trace-obj-y = trace-dtrace.o
|
|
else
|
|
trace-obj-y = trace.o
|
|
ifeq ($(TRACE_BACKEND),simple)
|
|
trace-obj-y += simpletrace.o
|
|
user-obj-y += qemu-timer-common.o
|
|
endif
|
|
endif
|
|
|
|
vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
|
|
|
vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
|
|
|