~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to target-alpha/machine.c

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include "qemu/osdep.h"
2
 
#include "qemu-common.h"
3
 
#include "cpu.h"
4
 
#include "hw/hw.h"
5
 
#include "hw/boards.h"
6
 
#include "migration/cpu.h"
7
 
 
8
 
static int get_fpcr(QEMUFile *f, void *opaque, size_t size)
9
 
{
10
 
    CPUAlphaState *env = opaque;
11
 
    cpu_alpha_store_fpcr(env, qemu_get_be64(f));
12
 
    return 0;
13
 
}
14
 
 
15
 
static void put_fpcr(QEMUFile *f, void *opaque, size_t size)
16
 
{
17
 
    CPUAlphaState *env = opaque;
18
 
    qemu_put_be64(f, cpu_alpha_load_fpcr(env));
19
 
}
20
 
 
21
 
static const VMStateInfo vmstate_fpcr = {
22
 
    .name = "fpcr",
23
 
    .get = get_fpcr,
24
 
    .put = put_fpcr,
25
 
};
26
 
 
27
 
static VMStateField vmstate_env_fields[] = {
28
 
    VMSTATE_UINTTL_ARRAY(ir, CPUAlphaState, 31),
29
 
    VMSTATE_UINTTL_ARRAY(fir, CPUAlphaState, 31),
30
 
    /* Save the architecture value of the fpcr, not the internally
31
 
       expanded version.  Since this architecture value does not
32
 
       exist in memory to be stored, this requires a but of hoop
33
 
       jumping.  We want OFFSET=0 so that we effectively pass ENV
34
 
       to the helper functions, and we need to fill in the name by
35
 
       hand since there's no field of that name.  */
36
 
    {
37
 
        .name = "fpcr",
38
 
        .version_id = 0,
39
 
        .size = sizeof(uint64_t),
40
 
        .info = &vmstate_fpcr,
41
 
        .flags = VMS_SINGLE,
42
 
        .offset = 0
43
 
    },
44
 
    VMSTATE_UINTTL(pc, CPUAlphaState),
45
 
    VMSTATE_UINTTL(unique, CPUAlphaState),
46
 
    VMSTATE_UINTTL(lock_addr, CPUAlphaState),
47
 
    VMSTATE_UINTTL(lock_value, CPUAlphaState),
48
 
 
49
 
    VMSTATE_UINT8(ps, CPUAlphaState),
50
 
    VMSTATE_UINT8(intr_flag, CPUAlphaState),
51
 
    VMSTATE_UINT8(pal_mode, CPUAlphaState),
52
 
    VMSTATE_UINT8(fen, CPUAlphaState),
53
 
 
54
 
    VMSTATE_UINT32(pcc_ofs, CPUAlphaState),
55
 
 
56
 
    VMSTATE_UINTTL(trap_arg0, CPUAlphaState),
57
 
    VMSTATE_UINTTL(trap_arg1, CPUAlphaState),
58
 
    VMSTATE_UINTTL(trap_arg2, CPUAlphaState),
59
 
 
60
 
    VMSTATE_UINTTL(exc_addr, CPUAlphaState),
61
 
    VMSTATE_UINTTL(palbr, CPUAlphaState),
62
 
    VMSTATE_UINTTL(ptbr, CPUAlphaState),
63
 
    VMSTATE_UINTTL(vptptr, CPUAlphaState),
64
 
    VMSTATE_UINTTL(sysval, CPUAlphaState),
65
 
    VMSTATE_UINTTL(usp, CPUAlphaState),
66
 
 
67
 
    VMSTATE_UINTTL_ARRAY(shadow, CPUAlphaState, 8),
68
 
    VMSTATE_UINTTL_ARRAY(scratch, CPUAlphaState, 24),
69
 
 
70
 
    VMSTATE_END_OF_LIST()
71
 
};
72
 
 
73
 
static const VMStateDescription vmstate_env = {
74
 
    .name = "env",
75
 
    .version_id = 2,
76
 
    .minimum_version_id = 2,
77
 
    .fields = vmstate_env_fields,
78
 
};
79
 
 
80
 
static VMStateField vmstate_cpu_fields[] = {
81
 
    VMSTATE_CPU(),
82
 
    VMSTATE_STRUCT(env, AlphaCPU, 1, vmstate_env, CPUAlphaState),
83
 
    VMSTATE_END_OF_LIST()
84
 
};
85
 
 
86
 
const VMStateDescription vmstate_alpha_cpu = {
87
 
    .name = "cpu",
88
 
    .version_id = 1,
89
 
    .minimum_version_id = 1,
90
 
    .fields = vmstate_cpu_fields,
91
 
};