mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Refactor target specific handling, compile vl.c only once
Move target specific functions and RAM handling to arch_init.c. Add a flag to QEMUOptions structure to indicate for which architectures the option is allowed, check the flag in run time and remove conditional code in option handling. Now that no target dependencies remain, compile vl.c only once for all targets. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
+11
-1
@@ -127,7 +127,7 @@ user-obj-y += cutils.o cache-utils.o
|
||||
# libhw
|
||||
|
||||
hw-obj-y =
|
||||
hw-obj-y += loader.o
|
||||
hw-obj-y += vl.o loader.o
|
||||
hw-obj-y += virtio.o virtio-console.o
|
||||
hw-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
|
||||
hw-obj-y += fw_cfg.o pci.o pci_host.o pcie_host.o
|
||||
@@ -216,3 +216,13 @@ 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
|
||||
|
||||
vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
||||
|
||||
vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
|
||||
|
||||
vl.o: qemu-options.h
|
||||
|
||||
qemu-options.h: $(SRC_PATH)/qemu-options.hx
|
||||
$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
||||
|
||||
|
||||
+3
-10
@@ -161,7 +161,7 @@ endif #CONFIG_BSD_USER
|
||||
# System emulator target
|
||||
ifdef CONFIG_SOFTMMU
|
||||
|
||||
obj-y = vl.o cpus.o monitor.o machine.o gdbstub.o
|
||||
obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o
|
||||
obj-y += qemu-timer.o
|
||||
# virtio has to be here due to weird dependency between PCI and virtio-net.
|
||||
# need to fix this properly
|
||||
@@ -285,11 +285,7 @@ obj-s390x-y = s390-virtio-bus.o s390-virtio.o
|
||||
|
||||
obj-alpha-y = alpha_palcode.o
|
||||
|
||||
main.o vl.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
||||
|
||||
vl.o: QEMU_CFLAGS+=$(SDL_CFLAGS)
|
||||
|
||||
vl.o: qemu-options.h
|
||||
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
||||
|
||||
monitor.o: qemu-monitor.h
|
||||
|
||||
@@ -311,16 +307,13 @@ $(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y)
|
||||
gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/feature_to_c.sh
|
||||
$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/feature_to_c.sh $@ $(TARGET_XML_FILES)," GEN $(TARGET_DIR)$@")
|
||||
|
||||
qemu-options.h: $(SRC_PATH)/qemu-options.hx
|
||||
$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
||||
|
||||
qemu-monitor.h: $(SRC_PATH)/qemu-monitor.hx
|
||||
$(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@")
|
||||
|
||||
clean:
|
||||
rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
|
||||
rm -f *.d */*.d tcg/*.o ide/*.o
|
||||
rm -f qemu-options.h qemu-monitor.h gdbstub-xml.c
|
||||
rm -f qemu-monitor.h gdbstub-xml.c
|
||||
|
||||
install: all
|
||||
ifneq ($(PROGS),)
|
||||
|
||||
+509
File diff suppressed because it is too large
Load Diff
+33
@@ -0,0 +1,33 @@
|
||||
#ifndef QEMU_ARCH_INIT_H
|
||||
#define QEMU_ARCH_INIT_H
|
||||
|
||||
extern const char arch_config_name[];
|
||||
|
||||
enum {
|
||||
QEMU_ARCH_ALL = -1,
|
||||
QEMU_ARCH_ALPHA = 1,
|
||||
QEMU_ARCH_ARM = 2,
|
||||
QEMU_ARCH_CRIS = 4,
|
||||
QEMU_ARCH_I386 = 8,
|
||||
QEMU_ARCH_M68K = 16,
|
||||
QEMU_ARCH_MICROBLAZE = 32,
|
||||
QEMU_ARCH_MIPS = 64,
|
||||
QEMU_ARCH_PPC = 128,
|
||||
QEMU_ARCH_S390X = 256,
|
||||
QEMU_ARCH_SH4 = 512,
|
||||
QEMU_ARCH_SPARC = 1024,
|
||||
};
|
||||
|
||||
extern const uint32_t arch_type;
|
||||
|
||||
void select_soundhw(const char *optarg);
|
||||
int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque);
|
||||
int ram_load(QEMUFile *f, void *opaque, int version_id);
|
||||
void do_acpitable_option(const char *optarg);
|
||||
void do_smbios_option(const char *optarg);
|
||||
void cpudef_init(void);
|
||||
int audio_available(void);
|
||||
int kvm_available(void);
|
||||
int xen_available(void);
|
||||
|
||||
#endif
|
||||
+158
-151
File diff suppressed because it is too large
Load Diff
@@ -142,13 +142,9 @@ extern uint64_t node_cpumask[MAX_NODES];
|
||||
extern const char *option_rom[MAX_OPTION_ROMS];
|
||||
extern int nb_option_roms;
|
||||
|
||||
#ifdef NEED_CPU_H
|
||||
#if defined(TARGET_SPARC) || defined(TARGET_PPC)
|
||||
#define MAX_PROM_ENVS 128
|
||||
extern const char *prom_envs[MAX_PROM_ENVS];
|
||||
extern unsigned int nb_prom_envs;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
IF_NONE,
|
||||
|
||||
Reference in New Issue
Block a user