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

« back to all changes in this revision

Viewing changes to target/i386/cpu-qom.h

  • 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
/*
 
2
 * QEMU x86 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_I386_CPU_QOM_H
 
21
#define QEMU_I386_CPU_QOM_H
 
22
 
 
23
#include "qom/cpu.h"
 
24
#include "qemu/notify.h"
 
25
 
 
26
#ifdef TARGET_X86_64
 
27
#define TYPE_X86_CPU "x86_64-cpu"
 
28
#else
 
29
#define TYPE_X86_CPU "i386-cpu"
 
30
#endif
 
31
 
 
32
#define X86_CPU_CLASS(klass) \
 
33
    OBJECT_CLASS_CHECK(X86CPUClass, (klass), TYPE_X86_CPU)
 
34
#define X86_CPU(obj) \
 
35
    OBJECT_CHECK(X86CPU, (obj), TYPE_X86_CPU)
 
36
#define X86_CPU_GET_CLASS(obj) \
 
37
    OBJECT_GET_CLASS(X86CPUClass, (obj), TYPE_X86_CPU)
 
38
 
 
39
/**
 
40
 * X86CPUDefinition:
 
41
 *
 
42
 * CPU model definition data that was not converted to QOM per-subclass
 
43
 * property defaults yet.
 
44
 */
 
45
typedef struct X86CPUDefinition X86CPUDefinition;
 
46
 
 
47
/**
 
48
 * X86CPUClass:
 
49
 * @cpu_def: CPU model definition
 
50
 * @kvm_required: Whether CPU model requires KVM to be enabled.
 
51
 * @ordering: Ordering on the "-cpu help" CPU model list.
 
52
 * @migration_safe: See CpuDefinitionInfo::migration_safe
 
53
 * @static_model: See CpuDefinitionInfo::static
 
54
 * @parent_realize: The parent class' realize handler.
 
55
 * @parent_reset: The parent class' reset handler.
 
56
 *
 
57
 * An x86 CPU model or family.
 
58
 */
 
59
typedef struct X86CPUClass {
 
60
    /*< private >*/
 
61
    CPUClass parent_class;
 
62
    /*< public >*/
 
63
 
 
64
    /* CPU definition, automatically loaded by instance_init if not NULL.
 
65
     * Should be eventually replaced by subclass-specific property defaults.
 
66
     */
 
67
    X86CPUDefinition *cpu_def;
 
68
 
 
69
    bool kvm_required;
 
70
    int ordering;
 
71
    bool migration_safe;
 
72
    bool static_model;
 
73
 
 
74
    /* Optional description of CPU model.
 
75
     * If unavailable, cpu_def->model_id is used */
 
76
    const char *model_description;
 
77
 
 
78
    DeviceRealize parent_realize;
 
79
    DeviceUnrealize parent_unrealize;
 
80
    void (*parent_reset)(CPUState *cpu);
 
81
} X86CPUClass;
 
82
 
 
83
typedef struct X86CPU X86CPU;
 
84
 
 
85
#endif