Statistics
| Branch: | Revision:

root / target-sparc / cpu-qom.h @ d7582078

History | View | Annotate | Download (1.8 kB)

1
/*
2
 * QEMU SPARC CPU
3
 *
4
 * Copyright (c) 2012 SUSE LINUX Products GmbH
5
 *
6
 * This library is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2.1 of the License, or (at your option) any later version.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with this library; if not, see
18
 * <http://www.gnu.org/licenses/lgpl-2.1.html>
19
 */
20
#ifndef QEMU_SPARC_CPU_QOM_H
21
#define QEMU_SPARC_CPU_QOM_H
22

    
23
#include "qemu/cpu.h"
24
#include "cpu.h"
25

    
26
#ifdef TARGET_SPARC64
27
#define TYPE_SPARC_CPU "sparc64-cpu"
28
#else
29
#define TYPE_SPARC_CPU "sparc-cpu"
30
#endif
31

    
32
#define SPARC_CPU_CLASS(klass) \
33
    OBJECT_CLASS_CHECK(SPARCCPUClass, (klass), TYPE_SPARC_CPU)
34
#define SPARC_CPU(obj) \
35
    OBJECT_CHECK(SPARCCPU, (obj), TYPE_SPARC_CPU)
36
#define SPARC_CPU_GET_CLASS(obj) \
37
    OBJECT_GET_CLASS(SPARCCPUClass, (obj), TYPE_SPARC_CPU)
38

    
39
/**
40
 * SPARCCPUClass:
41
 * @parent_reset: The parent class' reset handler.
42
 *
43
 * A SPARC CPU model.
44
 */
45
typedef struct SPARCCPUClass {
46
    /*< private >*/
47
    CPUClass parent_class;
48
    /*< public >*/
49

    
50
    void (*parent_reset)(CPUState *cpu);
51
} SPARCCPUClass;
52

    
53
/**
54
 * SPARCCPU:
55
 * @env: #CPUSPARCState
56
 *
57
 * A SPARC CPU.
58
 */
59
typedef struct SPARCCPU {
60
    /*< private >*/
61
    CPUState parent_obj;
62
    /*< public >*/
63

    
64
    CPUSPARCState env;
65
} SPARCCPU;
66

    
67
static inline SPARCCPU *sparc_env_get_cpu(CPUSPARCState *env)
68
{
69
    return SPARC_CPU(container_of(env, SPARCCPU, env));
70
}
71

    
72
#define ENV_GET_CPU(e) CPU(sparc_env_get_cpu(e))
73

    
74

    
75
#endif