Statistics
| Branch: | Revision:

root / qom / cpu.c @ 049cb3cf

History | View | Annotate | Download (1.4 kB)

1 dd83b06a Andreas Färber
/*
2 dd83b06a Andreas Färber
 * QEMU CPU model
3 dd83b06a Andreas Färber
 *
4 dd83b06a Andreas Färber
 * Copyright (c) 2012 SUSE LINUX Products GmbH
5 dd83b06a Andreas Färber
 *
6 dd83b06a Andreas Färber
 * This program is free software; you can redistribute it and/or
7 dd83b06a Andreas Färber
 * modify it under the terms of the GNU General Public License
8 dd83b06a Andreas Färber
 * as published by the Free Software Foundation; either version 2
9 dd83b06a Andreas Färber
 * of the License, or (at your option) any later version.
10 dd83b06a Andreas Färber
 *
11 dd83b06a Andreas Färber
 * This program is distributed in the hope that it will be useful,
12 dd83b06a Andreas Färber
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dd83b06a Andreas Färber
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 dd83b06a Andreas Färber
 * GNU General Public License for more details.
15 dd83b06a Andreas Färber
 *
16 dd83b06a Andreas Färber
 * You should have received a copy of the GNU General Public License
17 dd83b06a Andreas Färber
 * along with this program; if not, see
18 dd83b06a Andreas Färber
 * <http://www.gnu.org/licenses/gpl-2.0.html>
19 dd83b06a Andreas Färber
 */
20 dd83b06a Andreas Färber
21 dd83b06a Andreas Färber
#include "qemu/cpu.h"
22 dd83b06a Andreas Färber
#include "qemu-common.h"
23 dd83b06a Andreas Färber
24 dd83b06a Andreas Färber
void cpu_reset(CPUState *cpu)
25 dd83b06a Andreas Färber
{
26 dd83b06a Andreas Färber
    CPUClass *klass = CPU_GET_CLASS(cpu);
27 dd83b06a Andreas Färber
28 dd83b06a Andreas Färber
    if (klass->reset != NULL) {
29 dd83b06a Andreas Färber
        (*klass->reset)(cpu);
30 dd83b06a Andreas Färber
    }
31 dd83b06a Andreas Färber
}
32 dd83b06a Andreas Färber
33 dd83b06a Andreas Färber
static void cpu_common_reset(CPUState *cpu)
34 dd83b06a Andreas Färber
{
35 dd83b06a Andreas Färber
}
36 dd83b06a Andreas Färber
37 dd83b06a Andreas Färber
static void cpu_class_init(ObjectClass *klass, void *data)
38 dd83b06a Andreas Färber
{
39 dd83b06a Andreas Färber
    CPUClass *k = CPU_CLASS(klass);
40 dd83b06a Andreas Färber
41 dd83b06a Andreas Färber
    k->reset = cpu_common_reset;
42 dd83b06a Andreas Färber
}
43 dd83b06a Andreas Färber
44 dd83b06a Andreas Färber
static TypeInfo cpu_type_info = {
45 dd83b06a Andreas Färber
    .name = TYPE_CPU,
46 dd83b06a Andreas Färber
    .parent = TYPE_OBJECT,
47 dd83b06a Andreas Färber
    .instance_size = sizeof(CPUState),
48 dd83b06a Andreas Färber
    .abstract = true,
49 dd83b06a Andreas Färber
    .class_size = sizeof(CPUClass),
50 dd83b06a Andreas Färber
    .class_init = cpu_class_init,
51 dd83b06a Andreas Färber
};
52 dd83b06a Andreas Färber
53 dd83b06a Andreas Färber
static void cpu_register_types(void)
54 dd83b06a Andreas Färber
{
55 dd83b06a Andreas Färber
    type_register_static(&cpu_type_info);
56 dd83b06a Andreas Färber
}
57 dd83b06a Andreas Färber
58 dd83b06a Andreas Färber
type_init(cpu_register_types)