mirror of https://github.com/xemu-project/xemu.git
xen: Fold CONFIG_XEN_MAPCACHE into CONFIG_XEN
Xen won't be enabled if there is no backend support available for the host. And that also means the map cache will work. So drop the separate config switch and move the required stubs over to xen-stub.c. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
e41d7c691a
commit
868bb33faa
|
@ -4,7 +4,6 @@ GENERATED_HEADERS = config-target.h
|
||||||
CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y)
|
CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y)
|
||||||
CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
|
CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
|
||||||
CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y)
|
CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y)
|
||||||
CONFIG_NO_XEN_MAPCACHE = $(if $(subst n,,$(CONFIG_XEN_MAPCACHE)),n,y)
|
|
||||||
|
|
||||||
include ../config-host.mak
|
include ../config-host.mak
|
||||||
include config-devices.mak
|
include config-devices.mak
|
||||||
|
@ -207,10 +206,8 @@ QEMU_CFLAGS += $(VNC_JPEG_CFLAGS)
|
||||||
QEMU_CFLAGS += $(VNC_PNG_CFLAGS)
|
QEMU_CFLAGS += $(VNC_PNG_CFLAGS)
|
||||||
|
|
||||||
# xen support
|
# xen support
|
||||||
obj-$(CONFIG_XEN) += xen-all.o xen_machine_pv.o xen_domainbuild.o
|
obj-$(CONFIG_XEN) += xen-all.o xen_machine_pv.o xen_domainbuild.o xen-mapcache.o
|
||||||
obj-$(CONFIG_NO_XEN) += xen-stub.o
|
obj-$(CONFIG_NO_XEN) += xen-stub.o
|
||||||
obj-i386-$(CONFIG_XEN_MAPCACHE) += xen-mapcache.o
|
|
||||||
obj-$(CONFIG_NO_XEN_MAPCACHE) += xen-mapcache-stub.o
|
|
||||||
|
|
||||||
obj-i386-$(CONFIG_XEN) += xen_platform.o
|
obj-i386-$(CONFIG_XEN) += xen_platform.o
|
||||||
|
|
||||||
|
|
16
exec.c
16
exec.c
|
@ -2953,7 +2953,7 @@ ram_addr_t qemu_ram_alloc_from_ptr(DeviceState *dev, const char *name,
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (xen_mapcache_enabled()) {
|
if (xen_enabled()) {
|
||||||
xen_ram_alloc(new_block->offset, size);
|
xen_ram_alloc(new_block->offset, size);
|
||||||
} else {
|
} else {
|
||||||
new_block->host = qemu_vmalloc(size);
|
new_block->host = qemu_vmalloc(size);
|
||||||
|
@ -3019,7 +3019,7 @@ void qemu_ram_free(ram_addr_t addr)
|
||||||
#if defined(TARGET_S390X) && defined(CONFIG_KVM)
|
#if defined(TARGET_S390X) && defined(CONFIG_KVM)
|
||||||
munmap(block->host, block->length);
|
munmap(block->host, block->length);
|
||||||
#else
|
#else
|
||||||
if (xen_mapcache_enabled()) {
|
if (xen_enabled()) {
|
||||||
xen_invalidate_map_cache_entry(block->host);
|
xen_invalidate_map_cache_entry(block->host);
|
||||||
} else {
|
} else {
|
||||||
qemu_vfree(block->host);
|
qemu_vfree(block->host);
|
||||||
|
@ -3112,7 +3112,7 @@ void *qemu_get_ram_ptr(ram_addr_t addr)
|
||||||
QLIST_REMOVE(block, next);
|
QLIST_REMOVE(block, next);
|
||||||
QLIST_INSERT_HEAD(&ram_list.blocks, block, next);
|
QLIST_INSERT_HEAD(&ram_list.blocks, block, next);
|
||||||
}
|
}
|
||||||
if (xen_mapcache_enabled()) {
|
if (xen_enabled()) {
|
||||||
/* We need to check if the requested address is in the RAM
|
/* We need to check if the requested address is in the RAM
|
||||||
* because we don't want to map the entire memory in QEMU.
|
* because we don't want to map the entire memory in QEMU.
|
||||||
* In that case just map until the end of the page.
|
* In that case just map until the end of the page.
|
||||||
|
@ -3143,7 +3143,7 @@ void *qemu_safe_ram_ptr(ram_addr_t addr)
|
||||||
|
|
||||||
QLIST_FOREACH(block, &ram_list.blocks, next) {
|
QLIST_FOREACH(block, &ram_list.blocks, next) {
|
||||||
if (addr - block->offset < block->length) {
|
if (addr - block->offset < block->length) {
|
||||||
if (xen_mapcache_enabled()) {
|
if (xen_enabled()) {
|
||||||
/* We need to check if the requested address is in the RAM
|
/* We need to check if the requested address is in the RAM
|
||||||
* because we don't want to map the entire memory in QEMU.
|
* because we don't want to map the entire memory in QEMU.
|
||||||
* In that case just map until the end of the page.
|
* In that case just map until the end of the page.
|
||||||
|
@ -3169,9 +3169,9 @@ void *qemu_safe_ram_ptr(ram_addr_t addr)
|
||||||
* but takes a size argument */
|
* but takes a size argument */
|
||||||
void *qemu_ram_ptr_length(target_phys_addr_t addr, target_phys_addr_t *size)
|
void *qemu_ram_ptr_length(target_phys_addr_t addr, target_phys_addr_t *size)
|
||||||
{
|
{
|
||||||
if (xen_mapcache_enabled())
|
if (xen_enabled()) {
|
||||||
return xen_map_cache(addr, *size, 1);
|
return xen_map_cache(addr, *size, 1);
|
||||||
else {
|
} else {
|
||||||
RAMBlock *block;
|
RAMBlock *block;
|
||||||
|
|
||||||
QLIST_FOREACH(block, &ram_list.blocks, next) {
|
QLIST_FOREACH(block, &ram_list.blocks, next) {
|
||||||
|
@ -3200,7 +3200,7 @@ int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr)
|
||||||
RAMBlock *block;
|
RAMBlock *block;
|
||||||
uint8_t *host = ptr;
|
uint8_t *host = ptr;
|
||||||
|
|
||||||
if (xen_mapcache_enabled()) {
|
if (xen_enabled()) {
|
||||||
*ram_addr = xen_ram_addr_from_mapcache(ptr);
|
*ram_addr = xen_ram_addr_from_mapcache(ptr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -4115,7 +4115,7 @@ void cpu_physical_memory_unmap(void *buffer, target_phys_addr_t len,
|
||||||
access_len -= l;
|
access_len -= l;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (xen_mapcache_enabled()) {
|
if (xen_enabled()) {
|
||||||
xen_invalidate_map_cache_entry(buffer);
|
xen_invalidate_map_cache_entry(buffer);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
9
hw/xen.h
9
hw/xen.h
|
@ -31,15 +31,6 @@ static inline int xen_enabled(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int xen_mapcache_enabled(void)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_XEN_MAPCACHE
|
|
||||||
return xen_enabled();
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num);
|
int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num);
|
||||||
void xen_piix3_set_irq(void *opaque, int irq_num, int level);
|
void xen_piix3_set_irq(void *opaque, int irq_num, int level);
|
||||||
void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int len);
|
void xen_piix_pci_write_config_client(uint32_t address, uint32_t val, int len);
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2011 Citrix Ltd.
|
|
||||||
*
|
|
||||||
* This work is licensed under the terms of the GNU GPL, version 2. See
|
|
||||||
* the COPYING file in the top-level directory.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#include "cpu.h"
|
|
||||||
#include "qemu-common.h"
|
|
||||||
#include "cpu-common.h"
|
|
||||||
#include "xen-mapcache.h"
|
|
||||||
|
|
||||||
void xen_map_cache_init(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t *xen_map_cache(target_phys_addr_t phys_addr, target_phys_addr_t size,
|
|
||||||
uint8_t lock)
|
|
||||||
{
|
|
||||||
return qemu_get_ram_ptr(phys_addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
ram_addr_t xen_ram_addr_from_mapcache(void *ptr)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void xen_invalidate_map_cache(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void xen_invalidate_map_cache_entry(uint8_t *buffer)
|
|
||||||
{
|
|
||||||
}
|
|
Loading…
Reference in New Issue