mirror of
https://github.com/qemu/qemu.git
synced 2024-11-23 19:03:38 +08:00
target-alpha: Enable the alpha-softmmu target.
With all of the pre-existing code that would not compile gone, this is the earliest point at which the target can be enabled. There is no machine defined yet, so this will crash on startup. Enable the target anyway, to make sure that further compilation problems do not creep back in. Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
129d8aa575
commit
b758aca1f6
@ -376,7 +376,8 @@ obj-m68k-y += m68k-semi.o dummy_m68k.o
|
||||
|
||||
obj-s390x-y = s390-virtio-bus.o s390-virtio.o
|
||||
|
||||
obj-alpha-y =
|
||||
obj-alpha-y = i8259.o mc146818rtc.o
|
||||
obj-alpha-y += vga.o cirrus_vga.o
|
||||
|
||||
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
||||
|
||||
|
1
configure
vendored
1
configure
vendored
@ -831,6 +831,7 @@ if [ "$softmmu" = "yes" ] ; then
|
||||
default_target_list="\
|
||||
i386-softmmu \
|
||||
x86_64-softmmu \
|
||||
alpha-softmmu \
|
||||
arm-softmmu \
|
||||
cris-softmmu \
|
||||
lm32-softmmu \
|
||||
|
9
default-configs/alpha-softmmu.mak
Normal file
9
default-configs/alpha-softmmu.mak
Normal file
@ -0,0 +1,9 @@
|
||||
# Default configuration for alpha-softmmu
|
||||
|
||||
include pci.mak
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_I8254=y
|
||||
CONFIG_VGA_PCI=y
|
||||
CONFIG_IDE_CORE=y
|
||||
CONFIG_IDE_QDEV=y
|
||||
CONFIG_VMWARE_VGA=y
|
74
target-alpha/machine.c
Normal file
74
target-alpha/machine.c
Normal file
@ -0,0 +1,74 @@
|
||||
#include "hw/hw.h"
|
||||
#include "hw/boards.h"
|
||||
|
||||
static int get_fpcr(QEMUFile *f, void *opaque, size_t size)
|
||||
{
|
||||
CPUAlphaState *env = opaque;
|
||||
cpu_alpha_store_fpcr(env, qemu_get_be64(f));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void put_fpcr(QEMUFile *f, void *opaque, size_t size)
|
||||
{
|
||||
CPUAlphaState *env = opaque;
|
||||
qemu_put_be64(f, cpu_alpha_load_fpcr(env));
|
||||
}
|
||||
|
||||
static const VMStateInfo vmstate_fpcr = {
|
||||
.name = "fpcr",
|
||||
.get = get_fpcr,
|
||||
.put = put_fpcr,
|
||||
};
|
||||
|
||||
static VMStateField vmstate_cpu_fields[] = {
|
||||
VMSTATE_UINTTL_ARRAY(ir, CPUState, 31),
|
||||
VMSTATE_UINTTL_ARRAY(fir, CPUState, 31),
|
||||
/* Save the architecture value of the fpcr, not the internally
|
||||
expanded version. Since this architecture value does not
|
||||
exist in memory to be stored, this requires a but of hoop
|
||||
jumping. We want OFFSET=0 so that we effectively pass ENV
|
||||
to the helper functions, and we need to fill in the name by
|
||||
hand since there's no field of that name. */
|
||||
{
|
||||
.name = "fpcr",
|
||||
.version_id = 0,
|
||||
.size = sizeof(uint64_t),
|
||||
.info = &vmstate_fpcr,
|
||||
.flags = VMS_SINGLE,
|
||||
.offset = 0
|
||||
},
|
||||
VMSTATE_UINTTL(pc, CPUState),
|
||||
VMSTATE_UINTTL(unique, CPUState),
|
||||
VMSTATE_UINTTL(lock_addr, CPUState),
|
||||
VMSTATE_UINTTL(lock_value, CPUState),
|
||||
/* Note that lock_st_addr is not saved; it is a temporary
|
||||
used during the execution of the st[lq]_c insns. */
|
||||
|
||||
VMSTATE_UINT8(ps, CPUState),
|
||||
VMSTATE_UINT8(intr_flag, CPUState),
|
||||
VMSTATE_UINT8(pal_mode, CPUState),
|
||||
|
||||
VMSTATE_UINTTL(trap_arg0, CPUState),
|
||||
VMSTATE_UINTTL(trap_arg1, CPUState),
|
||||
VMSTATE_UINTTL(trap_arg2, CPUState),
|
||||
|
||||
VMSTATE_END_OF_LIST()
|
||||
};
|
||||
|
||||
static const VMStateDescription vmstate_cpu = {
|
||||
.name = "cpu",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = vmstate_cpu_fields,
|
||||
};
|
||||
|
||||
void cpu_save(QEMUFile *f, void *opaque)
|
||||
{
|
||||
vmstate_save_state(f, &vmstate_cpu, opaque);
|
||||
}
|
||||
|
||||
int cpu_load(QEMUFile *f, void *opaque, int version_id)
|
||||
{
|
||||
return vmstate_load_state(f, &vmstate_cpu, opaque, version_id);
|
||||
}
|
Loading…
Reference in New Issue
Block a user