1 | /* AUTOMATICALLY GENERATED, DO NOT MODIFY */ |
2 | |
3 | /* |
4 | * Schema-defined QAPI types |
5 | * |
6 | * Copyright IBM, Corp. 2011 |
7 | * Copyright (c) 2013-2018 Red Hat Inc. |
8 | * |
9 | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. |
10 | * See the COPYING.LIB file in the top-level directory. |
11 | */ |
12 | |
13 | #ifndef QAPI_TYPES_MACHINE_TARGET_H |
14 | #define QAPI_TYPES_MACHINE_TARGET_H |
15 | |
16 | #include "qapi/qapi-builtin-types.h" |
17 | |
18 | typedef struct CpuModelInfo CpuModelInfo; |
19 | |
20 | typedef enum CpuModelExpansionType { |
21 | CPU_MODEL_EXPANSION_TYPE_STATIC, |
22 | CPU_MODEL_EXPANSION_TYPE_FULL, |
23 | CPU_MODEL_EXPANSION_TYPE__MAX, |
24 | } CpuModelExpansionType; |
25 | |
26 | #define CpuModelExpansionType_str(val) \ |
27 | qapi_enum_lookup(&CpuModelExpansionType_lookup, (val)) |
28 | |
29 | extern const QEnumLookup CpuModelExpansionType_lookup; |
30 | |
31 | typedef enum CpuModelCompareResult { |
32 | CPU_MODEL_COMPARE_RESULT_INCOMPATIBLE, |
33 | CPU_MODEL_COMPARE_RESULT_IDENTICAL, |
34 | CPU_MODEL_COMPARE_RESULT_SUPERSET, |
35 | CPU_MODEL_COMPARE_RESULT_SUBSET, |
36 | CPU_MODEL_COMPARE_RESULT__MAX, |
37 | } CpuModelCompareResult; |
38 | |
39 | #define CpuModelCompareResult_str(val) \ |
40 | qapi_enum_lookup(&CpuModelCompareResult_lookup, (val)) |
41 | |
42 | extern const QEnumLookup CpuModelCompareResult_lookup; |
43 | |
44 | #if defined(TARGET_S390X) |
45 | typedef struct CpuModelBaselineInfo CpuModelBaselineInfo; |
46 | #endif /* defined(TARGET_S390X) */ |
47 | |
48 | #if defined(TARGET_S390X) |
49 | typedef struct CpuModelCompareInfo CpuModelCompareInfo; |
50 | #endif /* defined(TARGET_S390X) */ |
51 | |
52 | #if defined(TARGET_S390X) |
53 | typedef struct q_obj_query_cpu_model_comparison_arg q_obj_query_cpu_model_comparison_arg; |
54 | #endif /* defined(TARGET_S390X) */ |
55 | |
56 | #if defined(TARGET_S390X) |
57 | typedef struct q_obj_query_cpu_model_baseline_arg q_obj_query_cpu_model_baseline_arg; |
58 | #endif /* defined(TARGET_S390X) */ |
59 | |
60 | #if defined(TARGET_S390X) || defined(TARGET_I386) |
61 | typedef struct CpuModelExpansionInfo CpuModelExpansionInfo; |
62 | #endif /* defined(TARGET_S390X) || defined(TARGET_I386) */ |
63 | |
64 | #if defined(TARGET_S390X) || defined(TARGET_I386) |
65 | typedef struct q_obj_query_cpu_model_expansion_arg q_obj_query_cpu_model_expansion_arg; |
66 | #endif /* defined(TARGET_S390X) || defined(TARGET_I386) */ |
67 | |
68 | #if defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) |
69 | typedef struct CpuDefinitionInfo CpuDefinitionInfo; |
70 | #endif /* defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) */ |
71 | |
72 | #if defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) |
73 | typedef struct CpuDefinitionInfoList CpuDefinitionInfoList; |
74 | #endif /* defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) */ |
75 | |
76 | struct CpuModelInfo { |
77 | char *name; |
78 | bool has_props; |
79 | QObject *props; |
80 | }; |
81 | |
82 | void qapi_free_CpuModelInfo(CpuModelInfo *obj); |
83 | |
84 | #if defined(TARGET_S390X) |
85 | struct CpuModelBaselineInfo { |
86 | CpuModelInfo *model; |
87 | }; |
88 | #endif /* defined(TARGET_S390X) */ |
89 | |
90 | #if defined(TARGET_S390X) |
91 | void qapi_free_CpuModelBaselineInfo(CpuModelBaselineInfo *obj); |
92 | #endif /* defined(TARGET_S390X) */ |
93 | |
94 | #if defined(TARGET_S390X) |
95 | struct CpuModelCompareInfo { |
96 | CpuModelCompareResult result; |
97 | strList *responsible_properties; |
98 | }; |
99 | #endif /* defined(TARGET_S390X) */ |
100 | |
101 | #if defined(TARGET_S390X) |
102 | void qapi_free_CpuModelCompareInfo(CpuModelCompareInfo *obj); |
103 | #endif /* defined(TARGET_S390X) */ |
104 | |
105 | #if defined(TARGET_S390X) |
106 | struct q_obj_query_cpu_model_comparison_arg { |
107 | CpuModelInfo *modela; |
108 | CpuModelInfo *modelb; |
109 | }; |
110 | #endif /* defined(TARGET_S390X) */ |
111 | |
112 | #if defined(TARGET_S390X) |
113 | struct q_obj_query_cpu_model_baseline_arg { |
114 | CpuModelInfo *modela; |
115 | CpuModelInfo *modelb; |
116 | }; |
117 | #endif /* defined(TARGET_S390X) */ |
118 | |
119 | #if defined(TARGET_S390X) || defined(TARGET_I386) |
120 | struct CpuModelExpansionInfo { |
121 | CpuModelInfo *model; |
122 | }; |
123 | #endif /* defined(TARGET_S390X) || defined(TARGET_I386) */ |
124 | |
125 | #if defined(TARGET_S390X) || defined(TARGET_I386) |
126 | void qapi_free_CpuModelExpansionInfo(CpuModelExpansionInfo *obj); |
127 | #endif /* defined(TARGET_S390X) || defined(TARGET_I386) */ |
128 | |
129 | #if defined(TARGET_S390X) || defined(TARGET_I386) |
130 | struct q_obj_query_cpu_model_expansion_arg { |
131 | CpuModelExpansionType type; |
132 | CpuModelInfo *model; |
133 | }; |
134 | #endif /* defined(TARGET_S390X) || defined(TARGET_I386) */ |
135 | |
136 | #if defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) |
137 | struct CpuDefinitionInfo { |
138 | char *name; |
139 | bool has_migration_safe; |
140 | bool migration_safe; |
141 | bool q_static; |
142 | bool has_unavailable_features; |
143 | strList *unavailable_features; |
144 | char *q_typename; |
145 | bool has_alias_of; |
146 | char *alias_of; |
147 | }; |
148 | #endif /* defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) */ |
149 | |
150 | #if defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) |
151 | void qapi_free_CpuDefinitionInfo(CpuDefinitionInfo *obj); |
152 | #endif /* defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) */ |
153 | |
154 | #if defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) |
155 | struct CpuDefinitionInfoList { |
156 | CpuDefinitionInfoList *next; |
157 | CpuDefinitionInfo *value; |
158 | }; |
159 | |
160 | void qapi_free_CpuDefinitionInfoList(CpuDefinitionInfoList *obj); |
161 | #endif /* defined(TARGET_PPC) || defined(TARGET_ARM) || defined(TARGET_I386) || defined(TARGET_S390X) || defined(TARGET_MIPS) */ |
162 | |
163 | #endif /* QAPI_TYPES_MACHINE_TARGET_H */ |
164 | |