qemu_command_builder/
cpu_type.rs

1use crate::to_command::{ToArg, ToCommand};
2use std::str::FromStr;
3
4#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)]
5pub struct CpuNotFound;
6
7#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)]
8pub enum CpuTypeAarch64 {
9    /// a64fx
10    A64fx,
11    /// arm1026
12    Arm1026,
13    /// arm1136
14    Arm1136,
15    /// arm1136-r2
16    Arm1136r2,
17    /// arm1176
18    Arm1176,
19    /// arm11mpcore
20    Arm11mpcore,
21    /// arm926
22    Arm926,
23    /// arm946
24    Arm946,
25    /// cortex-a15
26    Cortexa15,
27    /// cortex-a35
28    Cortexa35,
29    /// cortex-a53
30    Cortexa53,
31    /// cortex-a55
32    Cortexa55,
33    /// cortex-a57
34    Cortexa57,
35    /// cortex-a7
36    Cortexa7,
37    /// cortex-a710
38    Cortexa710,
39    /// cortex-a72
40    Cortexa72,
41    /// cortex-a76
42    Cortexa76,
43    /// cortex-a8
44    Cortexa8,
45    /// cortex-a9
46    Cortexa9,
47    /// cortex-m0
48    Cortexm0,
49    /// cortex-m3
50    Cortexm3,
51    /// cortex-m33
52    Cortexm33,
53    /// cortex-m4
54    Cortexm4,
55    /// cortex-m55
56    Cortexm55,
57    /// cortex-m7
58    Cortexm7,
59    /// cortex-r5
60    Cortexr5,
61    /// cortex-r52
62    Cortexr52,
63    /// cortex-r5f
64    Cortexr5f,
65    /// host
66    Host,
67    /// max
68    Max,
69    /// neoverse-n1
70    Neoversen1,
71    /// neoverse-n2
72    Neoversen2,
73    /// neoverse-v1
74    NeoverseV1,
75    /// (deprecated)
76    Pxa250,
77    /// (deprecated)
78    Pxa255,
79    /// (deprecated)
80    Pxa260,
81    /// (deprecated)
82    Pxa261,
83    /// (deprecated)
84    Pxa262,
85    /// (deprecated)
86    Pxa270a0,
87    /// (deprecated)
88    Pxa270a1,
89    /// (deprecated)
90    Pxa270,
91    /// (deprecated)
92    Pxa270b0,
93    /// (deprecated)
94    Pxa270b1,
95    /// (deprecated)
96    Pxa270c0,
97    /// (deprecated)
98    Pxa270c5,
99    /// sa1100
100    Sa1100,
101    /// sa1110
102    Sa1110,
103    /// ti925t
104    Ti925t,
105}
106impl ToCommand for CpuTypeAarch64 {
107    fn to_command(&self) -> Vec<String> {
108        let mut cmd = vec![];
109
110        match self {
111            CpuTypeAarch64::A64fx => cmd.push("a64fx".to_string()),
112            CpuTypeAarch64::Arm1026 => cmd.push("arm1026".to_string()),
113            CpuTypeAarch64::Arm1136 => cmd.push("arm1136".to_string()),
114            CpuTypeAarch64::Arm1136r2 => cmd.push("arm1136-r2".to_string()),
115            CpuTypeAarch64::Arm1176 => cmd.push("arm1176".to_string()),
116            CpuTypeAarch64::Arm11mpcore => cmd.push("arm11mpcore".to_string()),
117            CpuTypeAarch64::Arm926 => cmd.push("arm926".to_string()),
118            CpuTypeAarch64::Arm946 => cmd.push("arm946".to_string()),
119            CpuTypeAarch64::Cortexa15 => cmd.push("cortex-a15".to_string()),
120            CpuTypeAarch64::Cortexa35 => cmd.push("cortex-a35".to_string()),
121            CpuTypeAarch64::Cortexa53 => cmd.push("cortex-a53".to_string()),
122            CpuTypeAarch64::Cortexa55 => cmd.push("cortex-a55".to_string()),
123            CpuTypeAarch64::Cortexa57 => cmd.push("cortex-a57".to_string()),
124            CpuTypeAarch64::Cortexa7 => cmd.push("cortex-a7".to_string()),
125            CpuTypeAarch64::Cortexa710 => cmd.push("cortex-a710".to_string()),
126            CpuTypeAarch64::Cortexa72 => cmd.push("cortex-a72".to_string()),
127            CpuTypeAarch64::Cortexa76 => cmd.push("cortex-a76".to_string()),
128            CpuTypeAarch64::Cortexa8 => cmd.push("cortex-a8".to_string()),
129            CpuTypeAarch64::Cortexa9 => cmd.push("cortex-a9".to_string()),
130            CpuTypeAarch64::Cortexm0 => cmd.push("cortex-m0".to_string()),
131            CpuTypeAarch64::Cortexm3 => cmd.push("cortex-m3".to_string()),
132            CpuTypeAarch64::Cortexm33 => cmd.push("cortex-m33".to_string()),
133            CpuTypeAarch64::Cortexm4 => cmd.push("cortex-m4".to_string()),
134            CpuTypeAarch64::Cortexm55 => cmd.push("cortex-m55".to_string()),
135            CpuTypeAarch64::Cortexm7 => cmd.push("cortex-m7".to_string()),
136            CpuTypeAarch64::Cortexr5 => cmd.push("cortex-r5".to_string()),
137            CpuTypeAarch64::Cortexr52 => cmd.push("cortex-r52".to_string()),
138            CpuTypeAarch64::Cortexr5f => cmd.push("cortex-r5f".to_string()),
139            CpuTypeAarch64::Host => cmd.push("host".to_string()),
140            CpuTypeAarch64::Max => cmd.push("max".to_string()),
141            CpuTypeAarch64::Neoversen1 => cmd.push("neoverse-n1".to_string()),
142            CpuTypeAarch64::Neoversen2 => cmd.push("neoverse-n2".to_string()),
143            CpuTypeAarch64::NeoverseV1 => cmd.push("neoverse-v1".to_string()),
144            CpuTypeAarch64::Pxa250 => cmd.push("pxa250".to_string()),
145            CpuTypeAarch64::Pxa255 => cmd.push("pxa255".to_string()),
146            CpuTypeAarch64::Pxa260 => cmd.push("pxa260".to_string()),
147            CpuTypeAarch64::Pxa261 => cmd.push("pxa261".to_string()),
148            CpuTypeAarch64::Pxa262 => cmd.push("pxa262".to_string()),
149            CpuTypeAarch64::Pxa270a0 => cmd.push("pxa270-a0".to_string()),
150            CpuTypeAarch64::Pxa270a1 => cmd.push("pxa270-a1".to_string()),
151            CpuTypeAarch64::Pxa270 => cmd.push("pxa270".to_string()),
152            CpuTypeAarch64::Pxa270b0 => cmd.push("pxa270-b0".to_string()),
153            CpuTypeAarch64::Pxa270b1 => cmd.push("pxa270-b1".to_string()),
154            CpuTypeAarch64::Pxa270c0 => cmd.push("pxa270-c0".to_string()),
155            CpuTypeAarch64::Pxa270c5 => cmd.push("pxa270-c5".to_string()),
156            CpuTypeAarch64::Sa1100 => cmd.push("sa1100".to_string()),
157            CpuTypeAarch64::Sa1110 => cmd.push("sa1110".to_string()),
158            CpuTypeAarch64::Ti925t => cmd.push("ti925t".to_string()),
159        }
160        cmd
161    }
162}
163
164impl ToArg for CpuTypeAarch64 {
165    fn to_arg(&self) -> &str {
166        match self {
167            CpuTypeAarch64::A64fx => "a64fx",
168            CpuTypeAarch64::Arm1026 => "arm1026",
169            CpuTypeAarch64::Arm1136 => "arm1136",
170            CpuTypeAarch64::Arm1136r2 => "arm1136-r2",
171            CpuTypeAarch64::Arm1176 => "arm1176",
172            CpuTypeAarch64::Arm11mpcore => "arm11mpcore",
173            CpuTypeAarch64::Arm926 => "arm926",
174            CpuTypeAarch64::Arm946 => "arm946",
175            CpuTypeAarch64::Cortexa15 => "cortex-a15",
176            CpuTypeAarch64::Cortexa35 => "cortex-a35",
177            CpuTypeAarch64::Cortexa53 => "cortex-a53",
178            CpuTypeAarch64::Cortexa55 => "cortex-a55",
179            CpuTypeAarch64::Cortexa57 => "cortex-a57",
180            CpuTypeAarch64::Cortexa7 => "cortex-a7",
181            CpuTypeAarch64::Cortexa710 => "cortex-a710",
182            CpuTypeAarch64::Cortexa72 => "cortex-a72",
183            CpuTypeAarch64::Cortexa76 => "cortex-a76",
184            CpuTypeAarch64::Cortexa8 => "cortex-a8",
185            CpuTypeAarch64::Cortexa9 => "cortex-a9",
186            CpuTypeAarch64::Cortexm0 => "cortex-m0",
187            CpuTypeAarch64::Cortexm3 => "cortex-m3",
188            CpuTypeAarch64::Cortexm33 => "cortex-m33",
189            CpuTypeAarch64::Cortexm4 => "cortex-m4",
190            CpuTypeAarch64::Cortexm55 => "cortex-m55",
191            CpuTypeAarch64::Cortexm7 => "cortex-m7",
192            CpuTypeAarch64::Cortexr5 => "cortex-r5",
193            CpuTypeAarch64::Cortexr52 => "cortex-r52",
194            CpuTypeAarch64::Cortexr5f => "cortex-r5f",
195            CpuTypeAarch64::Host => "host",
196            CpuTypeAarch64::Max => "max",
197            CpuTypeAarch64::Neoversen1 => "neoverse-n1",
198            CpuTypeAarch64::Neoversen2 => "neoverse-n2",
199            CpuTypeAarch64::NeoverseV1 => "neoverse-v1",
200            CpuTypeAarch64::Pxa250 => "pxa250",
201            CpuTypeAarch64::Pxa255 => "pxa255",
202            CpuTypeAarch64::Pxa260 => "pxa260",
203            CpuTypeAarch64::Pxa261 => "pxa261",
204            CpuTypeAarch64::Pxa262 => "pxa262",
205            CpuTypeAarch64::Pxa270a0 => "pxa270-a0",
206            CpuTypeAarch64::Pxa270a1 => "pxa270-a1",
207            CpuTypeAarch64::Pxa270 => "pxa270",
208            CpuTypeAarch64::Pxa270b0 => "pxa270-b0",
209            CpuTypeAarch64::Pxa270b1 => "pxa270-b1",
210            CpuTypeAarch64::Pxa270c0 => "pxa270-c0",
211            CpuTypeAarch64::Pxa270c5 => "pxa270-c5",
212            CpuTypeAarch64::Sa1100 => "sa1100",
213            CpuTypeAarch64::Sa1110 => "sa1110",
214            CpuTypeAarch64::Ti925t => "ti925t",
215        }
216    }
217}
218
219impl FromStr for CpuTypeAarch64 {
220    type Err = CpuNotFound;
221
222    fn from_str(s: &str) -> Result<Self, Self::Err> {
223        match s {
224            "a64fx" => Ok(CpuTypeAarch64::A64fx),
225            "arm1026" => Ok(CpuTypeAarch64::Arm1026),
226            "arm1136" => Ok(CpuTypeAarch64::Arm1136),
227            "arm1136-r2" => Ok(CpuTypeAarch64::Arm1136r2),
228            "arm1176" => Ok(CpuTypeAarch64::Arm1176),
229            "arm11mpcore" => Ok(CpuTypeAarch64::Arm11mpcore),
230            "arm926" => Ok(CpuTypeAarch64::Arm926),
231            "arm946" => Ok(CpuTypeAarch64::Arm946),
232            "cortex-a15" => Ok(CpuTypeAarch64::Cortexa15),
233            "cortex-a35" => Ok(CpuTypeAarch64::Cortexa35),
234            "cortex-a53" => Ok(CpuTypeAarch64::Cortexa53),
235            "cortex-a55" => Ok(CpuTypeAarch64::Cortexa55),
236            "cortex-a57" => Ok(CpuTypeAarch64::Cortexa57),
237            "cortex-a7" => Ok(CpuTypeAarch64::Cortexa7),
238            "cortex-a710" => Ok(CpuTypeAarch64::Cortexa710),
239            "cortex-a72" => Ok(CpuTypeAarch64::Cortexa72),
240            "cortex-a76" => Ok(CpuTypeAarch64::Cortexa76),
241            "cortex-a8" => Ok(CpuTypeAarch64::Cortexa8),
242            "cortex-a9" => Ok(CpuTypeAarch64::Cortexa9),
243            "cortex-m0" => Ok(CpuTypeAarch64::Cortexm0),
244            "cortex-m3" => Ok(CpuTypeAarch64::Cortexm3),
245            "cortex-m33" => Ok(CpuTypeAarch64::Cortexm33),
246            "cortex-m4" => Ok(CpuTypeAarch64::Cortexm4),
247            "cortex-m55" => Ok(CpuTypeAarch64::Cortexm55),
248            "cortex-m7" => Ok(CpuTypeAarch64::Cortexm7),
249            "cortex-r5" => Ok(CpuTypeAarch64::Cortexr5),
250            "cortex-r52" => Ok(CpuTypeAarch64::Cortexr52),
251            "cortex-r5f" => Ok(CpuTypeAarch64::Cortexr5f),
252            "host" => Ok(CpuTypeAarch64::Host),
253            "max" => Ok(CpuTypeAarch64::Max),
254            "neoverse-n1" => Ok(CpuTypeAarch64::Neoversen1),
255            "neoverse-n2" => Ok(CpuTypeAarch64::Neoversen2),
256            "neoverse-v1" => Ok(CpuTypeAarch64::NeoverseV1),
257            "pxa250" => Ok(CpuTypeAarch64::Pxa250),
258            "pxa255" => Ok(CpuTypeAarch64::Pxa255),
259            "pxa260" => Ok(CpuTypeAarch64::Pxa260),
260            "pxa261" => Ok(CpuTypeAarch64::Pxa261),
261            "pxa262" => Ok(CpuTypeAarch64::Pxa262),
262            "pxa270-a0" => Ok(CpuTypeAarch64::Pxa270a0),
263            "pxa270-a1" => Ok(CpuTypeAarch64::Pxa270a1),
264            "pxa270" => Ok(CpuTypeAarch64::Pxa270),
265            "pxa270-b0" => Ok(CpuTypeAarch64::Pxa270b0),
266            "pxa270-b1" => Ok(CpuTypeAarch64::Pxa270b1),
267            "pxa270-c0" => Ok(CpuTypeAarch64::Pxa270c0),
268            "pxa270-c5" => Ok(CpuTypeAarch64::Pxa270c5),
269            "sa1100" => Ok(CpuTypeAarch64::Sa1100),
270            "sa1110" => Ok(CpuTypeAarch64::Sa1110),
271            "ti925t" => Ok(CpuTypeAarch64::Ti925t),
272            _ => Err(CpuNotFound),
273        }
274    }
275}
276
277#[derive(Debug, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)]
278pub enum CpuTypeX86_64 {
279    /// (alias configured by machine type)
280    X486,
281    /// 486-v1
282    X486V1,
283    /// (alias configured by machine type)
284    Broadwell,
285    /// (alias of Broadwell-v3)
286    BroadwellIBRS,
287    /// (alias of Broadwell-v2)
288    BroadwellnoTSX,
289    /// (alias of Broadwell-v4)
290    BroadwellnoTSXIBRS,
291    /// Intel Core Processor (Broadwell)
292    BroadwellV1,
293    /// Intel Core Processor (Broadwell, no TSX)
294    BroadwellV2,
295    /// Intel Core Processor (Broadwell, IBRS)
296    BroadwellV3,
297    /// Intel Core Processor (Broadwell, no TSX, IBRS)
298    BroadwellV4,
299    /// (alias configured by machine type)
300    CascadelakeServer,
301    /// (alias of Cascadelake-Server-v3)
302    CascadelakeServernoTSX,
303    /// Intel Xeon Processor (Cascadelake)
304    CascadelakeServerV1,
305    /// Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES]
306    CascadelakeServerV2,
307    /// Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES, no TSX]
308    CascadelakeServerV3,
309    /// Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES, EPT switching, no TSX]
310    CascadelakeServerV4,
311    /// Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES, EPT switching, XSAVES, no TSX]
312    CascadelakeServerV5,
313    /// (alias configured by machine type)
314    ClearwaterForest,
315    /// Intel Xeon Processor (ClearwaterForest)
316    ClearwaterForestV1,
317    /// (alias configured by machine type)
318    Conroe,
319    /// Intel Celeron_4x0 (Conroe/Merom Class Core 2)
320    ConroeV1,
321    /// (alias configured by machine type)
322    Cooperlake,
323    /// Intel Xeon Processor (Cooperlake)
324    CooperlakeV1,
325    /// Intel Xeon Processor (Cooperlake) [XSAVES]
326    CooperlakeV2,
327    /// (alias configured by machine type)
328    Denverton,
329    /// Intel Atom Processor (Denverton)
330    DenvertonV1,
331    /// Intel Atom Processor (Denverton) [no MPX, no MONITOR]
332    DenvertonV2,
333    /// Intel Atom Processor (Denverton) [XSAVES, no MPX, no MONITOR]
334    DenvertonV3,
335    /// (alias configured by machine type)
336    Dhyana,
337    /// Hygon Dhyana Processor
338    DhyanaV1,
339    /// Hygon Dhyana Processor [XSAVES]
340    DhyanaV2,
341    /// (alias configured by machine type)
342    EPYC,
343    /// (alias configured by machine type)
344    EPYCGenoa,
345    /// AMD EPYC-Genoa Processor
346    EPYCGenoaV1,
347    /// AMD EPYC-Genoa-v2 Processor
348    EPYCGenoaV2,
349    /// (alias of EPYC-v2)
350    EPYCIBPB,
351    /// (alias configured by machine type)
352    EPYCMilan,
353    /// AMD EPYC-Milan Processor
354    EPYCMilanV1,
355    /// AMD EPYC-Milan-v2 Processor
356    EPYCMilanV2,
357    /// AMD EPYC-Milan-v3 Processor
358    EPYCMilanV3,
359    /// (alias configured by machine type)
360    EPYCRome,
361    /// AMD EPYC-Rome Processor
362    EPYCRomeV1,
363    /// AMD EPYC-Rome Processor
364    EPYCRomeV2,
365    /// AMD EPYC-Rome-v3 Processor
366    EPYCRomeV3,
367    /// AMD EPYC-Rome-v4 Processor (no XSAVES)
368    EPYCRomeV4,
369    /// AMD EPYC-Rome-v5 Processor
370    EPYCRomeV5,
371    /// (alias configured by machine type)
372    EPYCTurin,
373    /// AMD EPYC-Turin Processor
374    EPYCTurinV1,
375    /// AMD EPYC Processor
376    EPYCV1,
377    /// AMD EPYC Processor (with IBPB)
378    EPYCV2,
379    /// AMD EPYC Processor
380    EPYCV3,
381    /// AMD EPYC-v4 Processor
382    EPYCV4,
383    /// AMD EPYC-v5 Processor
384    EPYCV5,
385    /// (alias configured by machine type)
386    GraniteRapids,
387    /// Intel Xeon Processor (GraniteRapids)
388    GraniteRapidsV1,
389    /// Intel Xeon Processor (GraniteRapids)
390    GraniteRapidsV2,
391    /// Intel Xeon Processor (GraniteRapids) [with gnr-sp cache model and 0x1f leaf]
392    GraniteRapidsV3,
393    /// (alias configured by machine type)
394    Haswell,
395    /// (alias of Haswell-v3)
396    HaswellIBRS,
397    /// (alias of Haswell-v2)
398    HaswellnoTSX,
399    /// (alias of Haswell-v4)
400    HaswellnoTSXIBRS,
401    /// Intel Core Processor (Haswell)
402    HaswellV1,
403    /// Intel Core Processor (Haswell, no TSX)
404    HaswellV2,
405    /// Intel Core Processor (Haswell, IBRS)
406    HaswellV3,
407    /// Intel Core Processor (Haswell, no TSX, IBRS)
408    HaswellV4,
409    /// (alias configured by machine type)
410    IcelakeServer,
411    /// (alias of Icelake-Server-v2)
412    IcelakeServernoTSX,
413    /// Intel Xeon Processor (Icelake)
414    IcelakeServerV1,
415    /// Intel Xeon Processor (Icelake) [no TSX]
416    IcelakeServerV2,
417    /// Intel Xeon Processor (Icelake)
418    IcelakeServerV3,
419    /// Intel Xeon Processor (Icelake)
420    IcelakeServerV4,
421    /// Intel Xeon Processor (Icelake) [XSAVES]
422    IcelakeServerV5,
423    /// Intel Xeon Processor (Icelake) [5-level EPT]
424    IcelakeServerV6,
425    /// Intel Xeon Processor (Icelake) [TSX, taa-no]
426    IcelakeServerV7,
427    /// (alias configured by machine type)
428    IvyBridge,
429    /// (alias of IvyBridge-v2)
430    IvyBridgeIBRS,
431    /// Intel Xeon E3-12xx v2 (Ivy Bridge)
432    IvyBridgeV1,
433    /// Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)
434    IvyBridgeV2,
435    /// (alias configured by machine type)
436    KnightsMill,
437    /// Intel Xeon Phi Processor (Knights Mill)
438    KnightsMillV1,
439    /// (alias configured by machine type)
440    Nehalem,
441    /// (alias of Nehalem-v2)
442    NehalemIBRS,
443    /// Intel Core i7 9xx (Nehalem Class Core i7)
444    NehalemV1,
445    /// Intel Core i7 9xx (Nehalem Core i7, IBRS update)
446    NehalemV2,
447    /// (alias configured by machine type)
448    OpteronG1,
449    /// AMD Opteron 240 (Gen 1 Class Opteron)
450    OpteronG1V1,
451    /// (alias configured by machine type)
452    OpteronG2,
453    /// AMD Opteron 22xx (Gen 2 Class Opteron)
454    OpteronG2V1,
455    /// (alias configured by machine type)
456    OpteronG3,
457    /// AMD Opteron 23xx (Gen 3 Class Opteron)
458    OpteronG3V1,
459    /// (alias configured by machine type)
460    OpteronG4,
461    /// AMD Opteron 62xx class CPU
462    OpteronG4V1,
463    /// (alias configured by machine type)
464    OpteronG5,
465    /// AMD Opteron 63xx class CPU
466    OpteronG5V1,
467    /// (alias configured by machine type)
468    Penryn,
469    /// Intel Core 2 Duo P9xxx (Penryn Class Core 2)
470    PenrynV1,
471    /// (alias configured by machine type)
472    SandyBridge,
473    /// (alias of SandyBridge-v2)
474    SandyBridgeIBRS,
475    /// Intel Xeon E312xx (Sandy Bridge)
476    SandyBridgeV1,
477    /// Intel Xeon E312xx (Sandy Bridge, IBRS update)
478    SandyBridgeV2,
479    /// (alias configured by machine type)
480    SapphireRapids,
481    /// Intel Xeon Processor (SapphireRapids)
482    SapphireRapidsV1,
483    /// Intel Xeon Processor (SapphireRapids)
484    SapphireRapidsV2,
485    /// Intel Xeon Processor (SapphireRapids)
486    SapphireRapidsV3,
487    /// Intel Xeon Processor (SapphireRapids) [with spr-sp cache model and 0x1f leaf]
488    SapphireRapidsV4,
489    /// (alias configured by machine type)
490    SierraForest,
491    /// Intel Xeon Processor (SierraForest)
492    SierraForestV1,
493    /// Intel Xeon Processor (SierraForest)
494    SierraForestV2,
495    /// Intel Xeon Processor (SierraForest) [with srf-sp cache model and 0x1f leaf]
496    SierraForestV3,
497    /// (alias configured by machine type)
498    SkylakeClient,
499    /// (alias of Skylake-Client-v2)
500    SkylakeClientIBRS,
501    /// (alias of Skylake-Client-v3)
502    SkylakeClientnoTSXIBRS,
503    /// Intel Core Processor (Skylake)
504    SkylakeClientV1,
505    /// Intel Core Processor (Skylake, IBRS)
506    SkylakeClientV2,
507    /// Intel Core Processor (Skylake, IBRS, no TSX)
508    SkylakeClientV3,
509    /// Intel Core Processor (Skylake, IBRS, no TSX) [IBRS, XSAVES, no TSX]
510    SkylakeClientV4,
511    /// (alias configured by machine type)
512    SkylakeServer,
513    /// (alias of Skylake-Server-v2)
514    SkylakeServerIBRS,
515    /// (alias of Skylake-Server-v3)
516    SkylakeServernoTSXIBRS,
517    /// Intel Xeon Processor (Skylake)
518    SkylakeServerV1,
519    /// Intel Xeon Processor (Skylake, IBRS)
520    SkylakeServerV2,
521    /// Intel Xeon Processor (Skylake, IBRS, no TSX)
522    SkylakeServerV3,
523    /// Intel Xeon Processor (Skylake, IBRS, no TSX) [IBRS, EPT switching, no TSX]
524    SkylakeServerV4,
525    /// Intel Xeon Processor (Skylake, IBRS, no TSX) [IBRS, XSAVES, EPT switching, no TSX]
526    SkylakeServerV5,
527    /// (alias configured by machine type)
528    Snowridge,
529    /// Intel Atom Processor (SnowRidge)
530    SnowridgeV1,
531    /// Intel Atom Processor (Snowridge, no MPX)
532    SnowridgeV2,
533    /// Intel Atom Processor (Snowridge, no MPX) [XSAVES, no MPX]
534    SnowridgeV3,
535    /// Intel Atom Processor (Snowridge, no MPX) [no split lock detect, no core-capability]
536    SnowridgeV4,
537    /// (alias configured by machine type)
538    Westmere,
539    /// (alias of Westmere-v2)
540    WestmereIBRS,
541    /// Westmere E56xx/L56xx/X56xx (Nehalem-C)
542    WestmereV1,
543    /// Westmere E56xx/L56xx/X56xx (IBRS update)
544    WestmereV2,
545    /// (alias configured by machine type)
546    YongFeng,
547    /// Zhaoxin YongFeng Processor
548    YongFengV1,
549    /// Zhaoxin YongFeng Processor [with the correct model number]
550    YongFengV2,
551    /// Zhaoxin YongFeng Processor [with the cache model and 0x1f leaf]
552    YongFengV3,
553    /// (alias configured by machine type)
554    Athlon,
555    /// QEMU Virtual CPU version 2.5+
556    AthlonV1,
557    /// (alias configured by machine type)
558    Core2duo,
559    /// Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
560    Core2duoV1,
561    /// (alias configured by machine type)
562    Coreduo,
563    /// Genuine Intel(R) CPU T2600 @ 2.16GHz
564    CoreduoV1,
565    /// (alias configured by machine type)
566    Kvm32,
567    /// Common 32-bit KVM processor
568    Kvm32V1,
569    /// (alias configured by machine type)
570    Kvm64,
571    /// Common KVM processor
572    Kvm64V1,
573    /// (alias configured by machine type)
574    N270,
575    /// Intel(R) Atom(TM) CPU N270 @ 1.60GHz
576    N270V1,
577    /// (alias configured by machine type)
578    Pentium,
579    /// pentium-v1
580    PentiumV1,
581    /// (alias configured by machine type)
582    Pentium2,
583    /// pentium2-v1
584    Pentium2V1,
585    /// (alias configured by machine type)
586    Pentium3,
587    /// pentium3-v1
588    Pentium3V1,
589    /// (alias configured by machine type)
590    Phenom,
591    /// AMD Phenom(tm) 9550 Quad-Core Processor
592    PhenomV1,
593    /// (alias configured by machine type)
594    Qemu32,
595    /// QEMU Virtual CPU version 2.5+
596    Qemu32V1,
597    /// (alias configured by machine type)
598    Qemu64,
599    /// QEMU Virtual CPU version 2.5+
600    Qemu64V1,
601    /// base CPU model type with no features enabled
602    Base,
603    /// Enables all features supported by the accelerator in the current host
604    Max,
605    /// Enables all features supported by the accelerator in the current host
606    Host,
607}
608impl ToCommand for CpuTypeX86_64 {
609    fn to_command(&self) -> Vec<String> {
610        let mut cmd = vec![];
611
612        match self {
613            CpuTypeX86_64::X486 => cmd.push("486".to_string()),
614            CpuTypeX86_64::X486V1 => cmd.push("486-v1".to_string()),
615            CpuTypeX86_64::Broadwell => cmd.push("broadwell".to_string()),
616            CpuTypeX86_64::BroadwellIBRS => cmd.push("broadwell-ibrs".to_string()),
617            CpuTypeX86_64::BroadwellnoTSX => cmd.push("broadwell-notsx".to_string()),
618            CpuTypeX86_64::BroadwellnoTSXIBRS => cmd.push("broadwell-notsx-ibrs".to_string()),
619            CpuTypeX86_64::BroadwellV1 => cmd.push("broadwell-v1".to_string()),
620            CpuTypeX86_64::BroadwellV2 => cmd.push("broadwell-v2".to_string()),
621            CpuTypeX86_64::BroadwellV3 => cmd.push("broadwell-v3".to_string()),
622            CpuTypeX86_64::BroadwellV4 => cmd.push("broadwell-v4".to_string()),
623            CpuTypeX86_64::CascadelakeServer => cmd.push("cascadelake-server".to_string()),
624            CpuTypeX86_64::CascadelakeServernoTSX => {
625                cmd.push("cascadelake-server-notsx".to_string())
626            }
627            CpuTypeX86_64::CascadelakeServerV1 => cmd.push("cascadelake-server-v1".to_string()),
628            CpuTypeX86_64::CascadelakeServerV2 => cmd.push("cascadelake-server-v2".to_string()),
629            CpuTypeX86_64::CascadelakeServerV3 => cmd.push("cascadelake-server-v3".to_string()),
630            CpuTypeX86_64::CascadelakeServerV4 => cmd.push("cascadelake-server-v4".to_string()),
631            CpuTypeX86_64::CascadelakeServerV5 => cmd.push("cascadelake-server-v5".to_string()),
632            CpuTypeX86_64::ClearwaterForest => cmd.push("clearwaterforest".to_string()),
633            CpuTypeX86_64::ClearwaterForestV1 => cmd.push("clearwaterforest-v1".to_string()),
634            CpuTypeX86_64::Conroe => cmd.push("conroe".to_string()),
635            CpuTypeX86_64::ConroeV1 => cmd.push("conroe-v1".to_string()),
636            CpuTypeX86_64::Cooperlake => cmd.push("cooperlake".to_string()),
637            CpuTypeX86_64::CooperlakeV1 => cmd.push("cooperlake-v1".to_string()),
638            CpuTypeX86_64::CooperlakeV2 => cmd.push("cooperlake-v2".to_string()),
639            CpuTypeX86_64::Denverton => cmd.push("denverton".to_string()),
640            CpuTypeX86_64::DenvertonV1 => cmd.push("denverton-v1".to_string()),
641            CpuTypeX86_64::DenvertonV2 => cmd.push("denverton-v2".to_string()),
642            CpuTypeX86_64::DenvertonV3 => cmd.push("denverton-v3".to_string()),
643            CpuTypeX86_64::Dhyana => cmd.push("dhyana".to_string()),
644            CpuTypeX86_64::DhyanaV1 => cmd.push("dhyana-v1".to_string()),
645            CpuTypeX86_64::DhyanaV2 => cmd.push("dhyana-v2".to_string()),
646            CpuTypeX86_64::EPYC => cmd.push("epyc".to_string()),
647            CpuTypeX86_64::EPYCGenoa => cmd.push("epyc-genoa".to_string()),
648            CpuTypeX86_64::EPYCGenoaV1 => cmd.push("epyc-genoa-v1".to_string()),
649            CpuTypeX86_64::EPYCGenoaV2 => cmd.push("epyc-genoa-v2".to_string()),
650            CpuTypeX86_64::EPYCIBPB => cmd.push("epyc-ibpb".to_string()),
651            CpuTypeX86_64::EPYCMilan => cmd.push("epyc-milan".to_string()),
652            CpuTypeX86_64::EPYCMilanV1 => cmd.push("epyc-milan-v1".to_string()),
653            CpuTypeX86_64::EPYCMilanV2 => cmd.push("epyc-milan-v2".to_string()),
654            CpuTypeX86_64::EPYCMilanV3 => cmd.push("epyc-milan-v3".to_string()),
655            CpuTypeX86_64::EPYCRome => cmd.push("epyc-rome".to_string()),
656            CpuTypeX86_64::EPYCRomeV1 => cmd.push("epyc-rome-v1".to_string()),
657            CpuTypeX86_64::EPYCRomeV2 => cmd.push("epyc-rome-v2".to_string()),
658            CpuTypeX86_64::EPYCRomeV3 => cmd.push("epyc-rome-v3".to_string()),
659            CpuTypeX86_64::EPYCRomeV4 => cmd.push("epyc-rome-v4".to_string()),
660            CpuTypeX86_64::EPYCRomeV5 => cmd.push("epyc-rome-v5".to_string()),
661            CpuTypeX86_64::EPYCTurin => cmd.push("epyc-turin".to_string()),
662            CpuTypeX86_64::EPYCTurinV1 => cmd.push("epyc-turin-v1".to_string()),
663            CpuTypeX86_64::EPYCV1 => cmd.push("epyc-v1".to_string()),
664            CpuTypeX86_64::EPYCV2 => cmd.push("epyc-v2".to_string()),
665            CpuTypeX86_64::EPYCV3 => cmd.push("epyc-v3".to_string()),
666            CpuTypeX86_64::EPYCV4 => cmd.push("epyc-v4".to_string()),
667            CpuTypeX86_64::EPYCV5 => cmd.push("epyc-v5".to_string()),
668            CpuTypeX86_64::GraniteRapids => cmd.push("graniterapids".to_string()),
669            CpuTypeX86_64::GraniteRapidsV1 => cmd.push("graniterapids-v1".to_string()),
670            CpuTypeX86_64::GraniteRapidsV2 => cmd.push("graniterapids-v2".to_string()),
671            CpuTypeX86_64::GraniteRapidsV3 => cmd.push("graniterapids-v3".to_string()),
672            CpuTypeX86_64::Haswell => cmd.push("haswell".to_string()),
673            CpuTypeX86_64::HaswellIBRS => cmd.push("haswell-ibrs".to_string()),
674            CpuTypeX86_64::HaswellnoTSX => cmd.push("haswell-notsx".to_string()),
675            CpuTypeX86_64::HaswellnoTSXIBRS => cmd.push("haswell-notsx-ibrs".to_string()),
676            CpuTypeX86_64::HaswellV1 => cmd.push("haswell-v1".to_string()),
677            CpuTypeX86_64::HaswellV2 => cmd.push("haswell-v2".to_string()),
678            CpuTypeX86_64::HaswellV3 => cmd.push("haswell-v3".to_string()),
679            CpuTypeX86_64::HaswellV4 => cmd.push("haswell-v4".to_string()),
680            CpuTypeX86_64::IcelakeServer => cmd.push("icelake-server".to_string()),
681            CpuTypeX86_64::IcelakeServernoTSX => cmd.push("icelake-server-notsx".to_string()),
682            CpuTypeX86_64::IcelakeServerV1 => cmd.push("icelake-server-v1".to_string()),
683            CpuTypeX86_64::IcelakeServerV2 => cmd.push("icelake-server-v2".to_string()),
684            CpuTypeX86_64::IcelakeServerV3 => cmd.push("icelake-server-v3".to_string()),
685            CpuTypeX86_64::IcelakeServerV4 => cmd.push("icelake-server-v4".to_string()),
686            CpuTypeX86_64::IcelakeServerV5 => cmd.push("icelake-server-v5".to_string()),
687            CpuTypeX86_64::IcelakeServerV6 => cmd.push("icelake-server-v6".to_string()),
688            CpuTypeX86_64::IcelakeServerV7 => cmd.push("icelake-server-v7".to_string()),
689            CpuTypeX86_64::IvyBridge => cmd.push("ivybridge".to_string()),
690            CpuTypeX86_64::IvyBridgeIBRS => cmd.push("ivybridge-ibrs".to_string()),
691            CpuTypeX86_64::IvyBridgeV1 => cmd.push("ivybridge-v1".to_string()),
692            CpuTypeX86_64::IvyBridgeV2 => cmd.push("ivybridge-v2".to_string()),
693            CpuTypeX86_64::KnightsMill => cmd.push("knightsmill".to_string()),
694            CpuTypeX86_64::KnightsMillV1 => cmd.push("knightsmill-v1".to_string()),
695            CpuTypeX86_64::Nehalem => cmd.push("nehalem".to_string()),
696            CpuTypeX86_64::NehalemIBRS => cmd.push("nehalem-ibrs".to_string()),
697            CpuTypeX86_64::NehalemV1 => cmd.push("nehalem-v1".to_string()),
698            CpuTypeX86_64::NehalemV2 => cmd.push("nehalem-v2".to_string()),
699            CpuTypeX86_64::OpteronG1 => cmd.push("opteron_g1".to_string()),
700            CpuTypeX86_64::OpteronG1V1 => cmd.push("opteron_g1-v1".to_string()),
701            CpuTypeX86_64::OpteronG2 => cmd.push("opteron_g2".to_string()),
702            CpuTypeX86_64::OpteronG2V1 => cmd.push("opteron_g2-v1".to_string()),
703            CpuTypeX86_64::OpteronG3 => cmd.push("opteron_g3".to_string()),
704            CpuTypeX86_64::OpteronG3V1 => cmd.push("opteron_g3-v1".to_string()),
705            CpuTypeX86_64::OpteronG4 => cmd.push("opteron_g4".to_string()),
706            CpuTypeX86_64::OpteronG4V1 => cmd.push("opteron_g4-v1".to_string()),
707            CpuTypeX86_64::OpteronG5 => cmd.push("opteron_g5".to_string()),
708            CpuTypeX86_64::OpteronG5V1 => cmd.push("opteron_g5-v1".to_string()),
709            CpuTypeX86_64::Penryn => cmd.push("penryn".to_string()),
710            CpuTypeX86_64::PenrynV1 => cmd.push("penryn-v1".to_string()),
711            CpuTypeX86_64::SandyBridge => cmd.push("sandybridge".to_string()),
712            CpuTypeX86_64::SandyBridgeIBRS => cmd.push("sandybridge-ibrs".to_string()),
713            CpuTypeX86_64::SandyBridgeV1 => cmd.push("sandybridge-v1".to_string()),
714            CpuTypeX86_64::SandyBridgeV2 => cmd.push("sandybridge-v2".to_string()),
715            CpuTypeX86_64::SapphireRapids => cmd.push("sapphirerapids".to_string()),
716            CpuTypeX86_64::SapphireRapidsV1 => cmd.push("sapphirerapids-v1".to_string()),
717            CpuTypeX86_64::SapphireRapidsV2 => cmd.push("sapphirerapids-v2".to_string()),
718            CpuTypeX86_64::SapphireRapidsV3 => cmd.push("sapphirerapids-v3".to_string()),
719            CpuTypeX86_64::SapphireRapidsV4 => cmd.push("sapphirerapids-v4".to_string()),
720            CpuTypeX86_64::SierraForest => cmd.push("sierraforest".to_string()),
721            CpuTypeX86_64::SierraForestV1 => cmd.push("sierraforest-v1".to_string()),
722            CpuTypeX86_64::SierraForestV2 => cmd.push("sierraforest-v2".to_string()),
723            CpuTypeX86_64::SierraForestV3 => cmd.push("sierraforest-v3".to_string()),
724            CpuTypeX86_64::SkylakeClient => cmd.push("skylake-client".to_string()),
725            CpuTypeX86_64::SkylakeClientIBRS => cmd.push("skylake-client-ibrs".to_string()),
726            CpuTypeX86_64::SkylakeClientnoTSXIBRS => {
727                cmd.push("skylake-client-notsx-ibrs".to_string())
728            }
729            CpuTypeX86_64::SkylakeClientV1 => cmd.push("skylake-client-v1".to_string()),
730            CpuTypeX86_64::SkylakeClientV2 => cmd.push("skylake-client-v2".to_string()),
731            CpuTypeX86_64::SkylakeClientV3 => cmd.push("skylake-client-v3".to_string()),
732            CpuTypeX86_64::SkylakeClientV4 => cmd.push("skylake-client-v4".to_string()),
733            CpuTypeX86_64::SkylakeServer => cmd.push("skylake-server".to_string()),
734            CpuTypeX86_64::SkylakeServerIBRS => cmd.push("skylake-server-ibrs".to_string()),
735            CpuTypeX86_64::SkylakeServernoTSXIBRS => {
736                cmd.push("skylake-server-notsx-ibrs".to_string())
737            }
738            CpuTypeX86_64::SkylakeServerV1 => cmd.push("skylake-server-v1".to_string()),
739            CpuTypeX86_64::SkylakeServerV2 => cmd.push("skylake-server-v2".to_string()),
740            CpuTypeX86_64::SkylakeServerV3 => cmd.push("skylake-server-v3".to_string()),
741            CpuTypeX86_64::SkylakeServerV4 => cmd.push("skylake-server-v4".to_string()),
742            CpuTypeX86_64::SkylakeServerV5 => cmd.push("skylake-server-v5".to_string()),
743            CpuTypeX86_64::Snowridge => cmd.push("snowridge".to_string()),
744            CpuTypeX86_64::SnowridgeV1 => cmd.push("snowridge-v1".to_string()),
745            CpuTypeX86_64::SnowridgeV2 => cmd.push("snowridge-v2".to_string()),
746            CpuTypeX86_64::SnowridgeV3 => cmd.push("snowridge-v3".to_string()),
747            CpuTypeX86_64::SnowridgeV4 => cmd.push("snowridge-v4".to_string()),
748            CpuTypeX86_64::Westmere => cmd.push("westmere".to_string()),
749            CpuTypeX86_64::WestmereIBRS => cmd.push("westmere-ibrs".to_string()),
750            CpuTypeX86_64::WestmereV1 => cmd.push("westmere-v1".to_string()),
751            CpuTypeX86_64::WestmereV2 => cmd.push("westmere-v2".to_string()),
752            CpuTypeX86_64::YongFeng => cmd.push("yongfeng".to_string()),
753            CpuTypeX86_64::YongFengV1 => cmd.push("yongfeng-v1".to_string()),
754            CpuTypeX86_64::YongFengV2 => cmd.push("yongfeng-v2".to_string()),
755            CpuTypeX86_64::YongFengV3 => cmd.push("yongfeng-v3".to_string()),
756            CpuTypeX86_64::Athlon => cmd.push("athlon".to_string()),
757            CpuTypeX86_64::AthlonV1 => cmd.push("athlon-v1".to_string()),
758            CpuTypeX86_64::Core2duo => cmd.push("core2duo".to_string()),
759            CpuTypeX86_64::Core2duoV1 => cmd.push("core2duo-v1".to_string()),
760            CpuTypeX86_64::Coreduo => cmd.push("coreduo".to_string()),
761            CpuTypeX86_64::CoreduoV1 => cmd.push("coreduo-v1".to_string()),
762            CpuTypeX86_64::Kvm32 => cmd.push("kvm32".to_string()),
763            CpuTypeX86_64::Kvm32V1 => cmd.push("kvm32-v1".to_string()),
764            CpuTypeX86_64::Kvm64 => cmd.push("kvm64".to_string()),
765            CpuTypeX86_64::Kvm64V1 => cmd.push("kvm64-v1".to_string()),
766            CpuTypeX86_64::N270 => cmd.push("n270".to_string()),
767            CpuTypeX86_64::N270V1 => cmd.push("n270-v1".to_string()),
768            CpuTypeX86_64::Pentium => cmd.push("pentium".to_string()),
769            CpuTypeX86_64::PentiumV1 => cmd.push("pentium-v1".to_string()),
770            CpuTypeX86_64::Pentium2 => cmd.push("pentium2".to_string()),
771            CpuTypeX86_64::Pentium2V1 => cmd.push("pentium2-v1".to_string()),
772            CpuTypeX86_64::Pentium3 => cmd.push("pentium3".to_string()),
773            CpuTypeX86_64::Pentium3V1 => cmd.push("pentium3-v1".to_string()),
774            CpuTypeX86_64::Phenom => cmd.push("phenom".to_string()),
775            CpuTypeX86_64::PhenomV1 => cmd.push("phenom-v1".to_string()),
776            CpuTypeX86_64::Qemu32 => cmd.push("qemu32".to_string()),
777            CpuTypeX86_64::Qemu32V1 => cmd.push("qemu32-v1".to_string()),
778            CpuTypeX86_64::Qemu64 => cmd.push("qemu64".to_string()),
779            CpuTypeX86_64::Qemu64V1 => cmd.push("qemu64-v1".to_string()),
780            CpuTypeX86_64::Base => cmd.push("base".to_string()),
781            CpuTypeX86_64::Max => cmd.push("max".to_string()),
782            CpuTypeX86_64::Host => cmd.push("host".to_string()),
783        }
784        cmd
785    }
786}
787
788impl ToArg for CpuTypeX86_64 {
789    fn to_arg(&self) -> &str {
790        match self {
791            CpuTypeX86_64::X486 => "486",
792            CpuTypeX86_64::X486V1 => "486-v1",
793            CpuTypeX86_64::Broadwell => "Broadwell",
794            CpuTypeX86_64::BroadwellIBRS => "Broadwell-IBRS",
795            CpuTypeX86_64::BroadwellnoTSX => "Broadwell-noTSX",
796            CpuTypeX86_64::BroadwellnoTSXIBRS => "Broadwell-noTSX-IBRS",
797            CpuTypeX86_64::BroadwellV1 => "Broadwell-v1",
798            CpuTypeX86_64::BroadwellV2 => "Broadwell-v2",
799            CpuTypeX86_64::BroadwellV3 => "Broadwell-v3",
800            CpuTypeX86_64::BroadwellV4 => "Broadwell-v4",
801            CpuTypeX86_64::CascadelakeServer => "Cascadelake-Server",
802            CpuTypeX86_64::CascadelakeServernoTSX => "Cascadelake-Server-noTSX",
803            CpuTypeX86_64::CascadelakeServerV1 => "Cascadelake-Server-v1",
804            CpuTypeX86_64::CascadelakeServerV2 => "Cascadelake-Server-v2",
805            CpuTypeX86_64::CascadelakeServerV3 => "Cascadelake-Server-v3",
806            CpuTypeX86_64::CascadelakeServerV4 => "Cascadelake-Server-v4",
807            CpuTypeX86_64::CascadelakeServerV5 => "Cascadelake-Server-v5",
808            CpuTypeX86_64::ClearwaterForest => "ClearwaterForest",
809            CpuTypeX86_64::ClearwaterForestV1 => "ClearwaterForest-v1",
810            CpuTypeX86_64::Conroe => "Conroe",
811            CpuTypeX86_64::ConroeV1 => "Conroe-v1",
812            CpuTypeX86_64::Cooperlake => "Cooperlake",
813            CpuTypeX86_64::CooperlakeV1 => "Cooperlake-v1",
814            CpuTypeX86_64::CooperlakeV2 => "Cooperlake-v2",
815            CpuTypeX86_64::Denverton => "Denverton",
816            CpuTypeX86_64::DenvertonV1 => "Denverton-v1",
817            CpuTypeX86_64::DenvertonV2 => "Denverton-v2",
818            CpuTypeX86_64::DenvertonV3 => "Denverton-v3",
819            CpuTypeX86_64::Dhyana => "Dhyana",
820            CpuTypeX86_64::DhyanaV1 => "Dhyana-v1",
821            CpuTypeX86_64::DhyanaV2 => "Dhyana-v2",
822            CpuTypeX86_64::EPYC => "EPYC",
823            CpuTypeX86_64::EPYCGenoa => "EPYC-Genoa",
824            CpuTypeX86_64::EPYCGenoaV1 => "EPYC-Genoa-v1",
825            CpuTypeX86_64::EPYCGenoaV2 => "EPYC-Genoa-v2",
826            CpuTypeX86_64::EPYCIBPB => "EPYC-IBPB",
827            CpuTypeX86_64::EPYCMilan => "EPYC-Milan",
828            CpuTypeX86_64::EPYCMilanV1 => "EPYC-Milan-v1",
829            CpuTypeX86_64::EPYCMilanV2 => "EPYC-Milan-v2",
830            CpuTypeX86_64::EPYCMilanV3 => "EPYC-Milan-v3",
831            CpuTypeX86_64::EPYCRome => "EPYC-Rome",
832            CpuTypeX86_64::EPYCRomeV1 => "EPYC-Rome-v1",
833            CpuTypeX86_64::EPYCRomeV2 => "EPYC-Rome-v2",
834            CpuTypeX86_64::EPYCRomeV3 => "EPYC-Rome-v3",
835            CpuTypeX86_64::EPYCRomeV4 => "EPYC-Rome-v4",
836            CpuTypeX86_64::EPYCRomeV5 => "EPYC-Rome-v5",
837            CpuTypeX86_64::EPYCTurin => "EPYC-Turin",
838            CpuTypeX86_64::EPYCTurinV1 => "EPYC-Turin-v1",
839            CpuTypeX86_64::EPYCV1 => "EPYC-v1",
840            CpuTypeX86_64::EPYCV2 => "EPYC-v2",
841            CpuTypeX86_64::EPYCV3 => "EPYC-v3",
842            CpuTypeX86_64::EPYCV4 => "EPYC-v4",
843            CpuTypeX86_64::EPYCV5 => "EPYC-v5",
844            CpuTypeX86_64::GraniteRapids => "GraniteRapids",
845            CpuTypeX86_64::GraniteRapidsV1 => "GraniteRapids-v1",
846            CpuTypeX86_64::GraniteRapidsV2 => "GraniteRapids-v2",
847            CpuTypeX86_64::GraniteRapidsV3 => "GraniteRapids-v3",
848            CpuTypeX86_64::Haswell => "Haswell",
849            CpuTypeX86_64::HaswellIBRS => "Haswell-IBRS",
850            CpuTypeX86_64::HaswellnoTSX => "Haswell-noTSX",
851            CpuTypeX86_64::HaswellnoTSXIBRS => "Haswell-noTSX-IBRS",
852            CpuTypeX86_64::HaswellV1 => "Haswell-v1",
853            CpuTypeX86_64::HaswellV2 => "Haswell-v2",
854            CpuTypeX86_64::HaswellV3 => "Haswell-v3",
855            CpuTypeX86_64::HaswellV4 => "Haswell-v4",
856            CpuTypeX86_64::IcelakeServer => "Icelake-Server",
857            CpuTypeX86_64::IcelakeServernoTSX => "Icelake-Server-noTSX",
858            CpuTypeX86_64::IcelakeServerV1 => "Icelake-Server-v1",
859            CpuTypeX86_64::IcelakeServerV2 => "Icelake-Server-v2",
860            CpuTypeX86_64::IcelakeServerV3 => "Icelake-Server-v3",
861            CpuTypeX86_64::IcelakeServerV4 => "Icelake-Server-v4",
862            CpuTypeX86_64::IcelakeServerV5 => "Icelake-Server-v5",
863            CpuTypeX86_64::IcelakeServerV6 => "Icelake-Server-v6",
864            CpuTypeX86_64::IcelakeServerV7 => "Icelake-Server-v7",
865            CpuTypeX86_64::IvyBridge => "IvyBridge",
866            CpuTypeX86_64::IvyBridgeIBRS => "IvyBridge-IBRS",
867            CpuTypeX86_64::IvyBridgeV1 => "IvyBridge-v1",
868            CpuTypeX86_64::IvyBridgeV2 => "IvyBridge-v2",
869            CpuTypeX86_64::KnightsMill => "KnightsMill",
870            CpuTypeX86_64::KnightsMillV1 => "KnightsMill-v1",
871            CpuTypeX86_64::Nehalem => "Nehalem",
872            CpuTypeX86_64::NehalemIBRS => "Nehalem-IBRS",
873            CpuTypeX86_64::NehalemV1 => "Nehalem-v1",
874            CpuTypeX86_64::NehalemV2 => "Nehalem-v2",
875            CpuTypeX86_64::OpteronG1 => "Opteron_G1",
876            CpuTypeX86_64::OpteronG1V1 => "Opteron_G1-v1",
877            CpuTypeX86_64::OpteronG2 => "Opteron_G2",
878            CpuTypeX86_64::OpteronG2V1 => "Opteron_G2-v1",
879            CpuTypeX86_64::OpteronG3 => "Opteron_G3",
880            CpuTypeX86_64::OpteronG3V1 => "Opteron_G3-v1",
881            CpuTypeX86_64::OpteronG4 => "Opteron_G4",
882            CpuTypeX86_64::OpteronG4V1 => "Opteron_G4-v1",
883            CpuTypeX86_64::OpteronG5 => "Opteron_G5",
884            CpuTypeX86_64::OpteronG5V1 => "Opteron_G5-v1",
885            CpuTypeX86_64::Penryn => "Penryn",
886            CpuTypeX86_64::PenrynV1 => "Penryn-v1",
887            CpuTypeX86_64::SandyBridge => "SandyBridge",
888            CpuTypeX86_64::SandyBridgeIBRS => "SandyBridge-IBRS",
889            CpuTypeX86_64::SandyBridgeV1 => "SandyBridge-v1",
890            CpuTypeX86_64::SandyBridgeV2 => "SandyBridge-v2",
891            CpuTypeX86_64::SapphireRapids => "SapphireRapids",
892            CpuTypeX86_64::SapphireRapidsV1 => "SapphireRapids-v1",
893            CpuTypeX86_64::SapphireRapidsV2 => "SapphireRapids-v2",
894            CpuTypeX86_64::SapphireRapidsV3 => "SapphireRapids-v3",
895            CpuTypeX86_64::SapphireRapidsV4 => "SapphireRapids-v4",
896            CpuTypeX86_64::SierraForest => "SierraForest",
897            CpuTypeX86_64::SierraForestV1 => "SierraForest-v1",
898            CpuTypeX86_64::SierraForestV2 => "SierraForest-v2",
899            CpuTypeX86_64::SierraForestV3 => "SierraForest-v3",
900            CpuTypeX86_64::SkylakeClient => "Skylake-Client",
901            CpuTypeX86_64::SkylakeClientIBRS => "Skylake-Client-IBRS",
902            CpuTypeX86_64::SkylakeClientnoTSXIBRS => "Skylake-Client-noTSX-IBRS",
903            CpuTypeX86_64::SkylakeClientV1 => "Skylake-Client-v1",
904            CpuTypeX86_64::SkylakeClientV2 => "Skylake-Client-v2",
905            CpuTypeX86_64::SkylakeClientV3 => "Skylake-Client-v3",
906            CpuTypeX86_64::SkylakeClientV4 => "Skylake-Client-v4",
907            CpuTypeX86_64::SkylakeServer => "Skylake-Server",
908            CpuTypeX86_64::SkylakeServerIBRS => "Skylake-Server-IBRS",
909            CpuTypeX86_64::SkylakeServernoTSXIBRS => "Skylake-Server-noTSX-IBRS",
910            CpuTypeX86_64::SkylakeServerV1 => "Skylake-Server-v1",
911            CpuTypeX86_64::SkylakeServerV2 => "Skylake-Server-v2",
912            CpuTypeX86_64::SkylakeServerV3 => "Skylake-Server-v3",
913            CpuTypeX86_64::SkylakeServerV4 => "Skylake-Server-v4",
914            CpuTypeX86_64::SkylakeServerV5 => "Skylake-Server-v5",
915            CpuTypeX86_64::Snowridge => "Snowridge",
916            CpuTypeX86_64::SnowridgeV1 => "Snowridge-v1",
917            CpuTypeX86_64::SnowridgeV2 => "Snowridge-v2",
918            CpuTypeX86_64::SnowridgeV3 => "Snowridge-v3",
919            CpuTypeX86_64::SnowridgeV4 => "Snowridge-v4",
920            CpuTypeX86_64::Westmere => "Westmere",
921            CpuTypeX86_64::WestmereIBRS => "Westmere-IBRS",
922            CpuTypeX86_64::WestmereV1 => "Westmere-v1",
923            CpuTypeX86_64::WestmereV2 => "Westmere-v2",
924            CpuTypeX86_64::YongFeng => "YongFeng",
925            CpuTypeX86_64::YongFengV1 => "YongFeng-v1",
926            CpuTypeX86_64::YongFengV2 => "YongFeng-v2",
927            CpuTypeX86_64::YongFengV3 => "YongFeng-v3",
928            CpuTypeX86_64::Athlon => "athlon",
929            CpuTypeX86_64::AthlonV1 => "athlon-v1",
930            CpuTypeX86_64::Core2duo => "core2duo",
931            CpuTypeX86_64::Core2duoV1 => "core2duo-v1",
932            CpuTypeX86_64::Coreduo => "coreduo",
933            CpuTypeX86_64::CoreduoV1 => "coreduo-v1",
934            CpuTypeX86_64::Kvm32 => "kvm32",
935            CpuTypeX86_64::Kvm32V1 => "kvm32-v1",
936            CpuTypeX86_64::Kvm64 => "kvm64",
937            CpuTypeX86_64::Kvm64V1 => "kvm64-v1",
938            CpuTypeX86_64::N270 => "n270",
939            CpuTypeX86_64::N270V1 => "n270-v1",
940            CpuTypeX86_64::Pentium => "pentium",
941            CpuTypeX86_64::PentiumV1 => "pentium-v1",
942            CpuTypeX86_64::Pentium2 => "pentium2",
943            CpuTypeX86_64::Pentium2V1 => "pentium2-v1",
944            CpuTypeX86_64::Pentium3 => "pentium3",
945            CpuTypeX86_64::Pentium3V1 => "pentium3-v1",
946            CpuTypeX86_64::Phenom => "phenom",
947            CpuTypeX86_64::PhenomV1 => "phenom-v1",
948            CpuTypeX86_64::Qemu32 => "qemu32",
949            CpuTypeX86_64::Qemu32V1 => "qemu32-v1",
950            CpuTypeX86_64::Qemu64 => "qemu64",
951            CpuTypeX86_64::Qemu64V1 => "qemu64-v1",
952            CpuTypeX86_64::Base => "base",
953            CpuTypeX86_64::Max => "max",
954            CpuTypeX86_64::Host => "host",
955        }
956    }
957}
958
959impl FromStr for CpuTypeX86_64 {
960    type Err = CpuNotFound;
961
962    fn from_str(s: &str) -> Result<Self, Self::Err> {
963        match s {
964            "486" => Ok(CpuTypeX86_64::X486),
965            "486-v1" => Ok(CpuTypeX86_64::X486V1),
966            "Broadwell" => Ok(CpuTypeX86_64::Broadwell),
967            "Broadwell-IBRS" => Ok(CpuTypeX86_64::BroadwellIBRS),
968            "Broadwell-noTSX" => Ok(CpuTypeX86_64::BroadwellnoTSX),
969            "Broadwell-noTSX-IBRS" => Ok(CpuTypeX86_64::BroadwellnoTSXIBRS),
970            "Broadwell-v1" => Ok(CpuTypeX86_64::BroadwellV1),
971            "Broadwell-v2" => Ok(CpuTypeX86_64::BroadwellV2),
972            "Broadwell-v3" => Ok(CpuTypeX86_64::BroadwellV3),
973            "Broadwell-v4" => Ok(CpuTypeX86_64::BroadwellV4),
974            "Cascadelake-Server" => Ok(CpuTypeX86_64::CascadelakeServer),
975            "Cascadelake-Server-noTSX" => Ok(CpuTypeX86_64::CascadelakeServernoTSX),
976            "Cascadelake-Server-v1" => Ok(CpuTypeX86_64::CascadelakeServerV1),
977            "Cascadelake-Server-v2" => Ok(CpuTypeX86_64::CascadelakeServerV2),
978            "Cascadelake-Server-v3" => Ok(CpuTypeX86_64::CascadelakeServerV3),
979            "Cascadelake-Server-v4" => Ok(CpuTypeX86_64::CascadelakeServerV4),
980            "Cascadelake-Server-v5" => Ok(CpuTypeX86_64::CascadelakeServerV5),
981            "ClearwaterForest" => Ok(CpuTypeX86_64::ClearwaterForest),
982            "ClearwaterForest-v1" => Ok(CpuTypeX86_64::ClearwaterForestV1),
983            "Conroe" => Ok(CpuTypeX86_64::Conroe),
984            "Conroe-v1" => Ok(CpuTypeX86_64::ConroeV1),
985            "Cooperlake" => Ok(CpuTypeX86_64::Cooperlake),
986            "Cooperlake-v1" => Ok(CpuTypeX86_64::CooperlakeV1),
987            "Cooperlake-v2" => Ok(CpuTypeX86_64::CooperlakeV2),
988            "Denverton" => Ok(CpuTypeX86_64::Denverton),
989            "Denverton-v1" => Ok(CpuTypeX86_64::DenvertonV1),
990            "Denverton-v2" => Ok(CpuTypeX86_64::DenvertonV2),
991            "Denverton-v3" => Ok(CpuTypeX86_64::DenvertonV3),
992            "Dhyana" => Ok(CpuTypeX86_64::Dhyana),
993            "Dhyana-v1" => Ok(CpuTypeX86_64::DhyanaV1),
994            "Dhyana-v2" => Ok(CpuTypeX86_64::DhyanaV2),
995            "EPYC" => Ok(CpuTypeX86_64::EPYC),
996            "EPYC-Genoa" => Ok(CpuTypeX86_64::EPYCGenoa),
997            "EPYC-Genoa-v1" => Ok(CpuTypeX86_64::EPYCGenoaV1),
998            "EPYC-Genoa-v2" => Ok(CpuTypeX86_64::EPYCGenoaV2),
999            "EPYC-IBPB" => Ok(CpuTypeX86_64::EPYCIBPB),
1000            "EPYC-Milan" => Ok(CpuTypeX86_64::EPYCMilan),
1001            "EPYC-Milan-v1" => Ok(CpuTypeX86_64::EPYCMilanV1),
1002            "EPYC-Milan-v2" => Ok(CpuTypeX86_64::EPYCMilanV2),
1003            "EPYC-Milan-v3" => Ok(CpuTypeX86_64::EPYCMilanV3),
1004            "EPYC-Rome" => Ok(CpuTypeX86_64::EPYCRome),
1005            "EPYC-Rome-v1" => Ok(CpuTypeX86_64::EPYCRomeV1),
1006            "EPYC-Rome-v2" => Ok(CpuTypeX86_64::EPYCRomeV2),
1007            "EPYC-Rome-v3" => Ok(CpuTypeX86_64::EPYCRomeV3),
1008            "EPYC-Rome-v4" => Ok(CpuTypeX86_64::EPYCRomeV4),
1009            "EPYC-Rome-v5" => Ok(CpuTypeX86_64::EPYCRomeV5),
1010            "EPYC-Turin" => Ok(CpuTypeX86_64::EPYCTurin),
1011            "EPYC-Turin-v1" => Ok(CpuTypeX86_64::EPYCTurinV1),
1012            "EPYC-v1" => Ok(CpuTypeX86_64::EPYCV1),
1013            "EPYC-v2" => Ok(CpuTypeX86_64::EPYCV2),
1014            "EPYC-v3" => Ok(CpuTypeX86_64::EPYCV3),
1015            "EPYC-v4" => Ok(CpuTypeX86_64::EPYCV4),
1016            "EPYC-v5" => Ok(CpuTypeX86_64::EPYCV5),
1017            "GraniteRapids" => Ok(CpuTypeX86_64::GraniteRapids),
1018            "GraniteRapids-v1" => Ok(CpuTypeX86_64::GraniteRapidsV1),
1019            "GraniteRapids-v2" => Ok(CpuTypeX86_64::GraniteRapidsV2),
1020            "GraniteRapids-v3" => Ok(CpuTypeX86_64::GraniteRapidsV3),
1021            "Haswell" => Ok(CpuTypeX86_64::Haswell),
1022            "Haswell-IBRS" => Ok(CpuTypeX86_64::HaswellIBRS),
1023            "Haswell-noTSX" => Ok(CpuTypeX86_64::HaswellnoTSX),
1024            "Haswell-noTSX-IBRS" => Ok(CpuTypeX86_64::HaswellnoTSXIBRS),
1025            "Haswell-v1" => Ok(CpuTypeX86_64::HaswellV1),
1026            "Haswell-v2" => Ok(CpuTypeX86_64::HaswellV2),
1027            "Haswell-v3" => Ok(CpuTypeX86_64::HaswellV3),
1028            "Haswell-v4" => Ok(CpuTypeX86_64::HaswellV4),
1029            "Icelake-Server" => Ok(CpuTypeX86_64::IcelakeServer),
1030            "Icelake-Server-noTSX" => Ok(CpuTypeX86_64::IcelakeServernoTSX),
1031            "Icelake-Server-v1" => Ok(CpuTypeX86_64::IcelakeServerV1),
1032            "Icelake-Server-v2" => Ok(CpuTypeX86_64::IcelakeServerV2),
1033            "Icelake-Server-v3" => Ok(CpuTypeX86_64::IcelakeServerV3),
1034            "Icelake-Server-v4" => Ok(CpuTypeX86_64::IcelakeServerV4),
1035            "Icelake-Server-v5" => Ok(CpuTypeX86_64::IcelakeServerV5),
1036            "Icelake-Server-v6" => Ok(CpuTypeX86_64::IcelakeServerV6),
1037            "Icelake-Server-v7" => Ok(CpuTypeX86_64::IcelakeServerV7),
1038            "IvyBridge" => Ok(CpuTypeX86_64::IvyBridge),
1039            "IvyBridge-IBRS" => Ok(CpuTypeX86_64::IvyBridgeIBRS),
1040            "IvyBridge-v1" => Ok(CpuTypeX86_64::IvyBridgeV1),
1041            "IvyBridge-v2" => Ok(CpuTypeX86_64::IvyBridgeV2),
1042            "KnightsMill" => Ok(CpuTypeX86_64::KnightsMill),
1043            "KnightsMill-v1" => Ok(CpuTypeX86_64::KnightsMillV1),
1044            "Nehalem" => Ok(CpuTypeX86_64::Nehalem),
1045            "Nehalem-IBRS" => Ok(CpuTypeX86_64::NehalemIBRS),
1046            "Nehalem-v1" => Ok(CpuTypeX86_64::NehalemV1),
1047            "Nehalem-v2" => Ok(CpuTypeX86_64::NehalemV2),
1048            "Opteron_G1" => Ok(CpuTypeX86_64::OpteronG1),
1049            "Opteron_G1-v1" => Ok(CpuTypeX86_64::OpteronG1V1),
1050            "Opteron_G2" => Ok(CpuTypeX86_64::OpteronG2),
1051            "Opteron_G2-v1" => Ok(CpuTypeX86_64::OpteronG2V1),
1052            "Opteron_G3" => Ok(CpuTypeX86_64::OpteronG3),
1053            "Opteron_G3-v1" => Ok(CpuTypeX86_64::OpteronG3V1),
1054            "Opteron_G4" => Ok(CpuTypeX86_64::OpteronG4),
1055            "Opteron_G4-v1" => Ok(CpuTypeX86_64::OpteronG4V1),
1056            "Opteron_G5" => Ok(CpuTypeX86_64::OpteronG5),
1057            "Opteron_G5-v1" => Ok(CpuTypeX86_64::OpteronG5V1),
1058            "Penryn" => Ok(CpuTypeX86_64::Penryn),
1059            "Penryn-v1" => Ok(CpuTypeX86_64::PenrynV1),
1060            "SandyBridge" => Ok(CpuTypeX86_64::SandyBridge),
1061            "SandyBridge-IBRS" => Ok(CpuTypeX86_64::SandyBridgeIBRS),
1062            "SandyBridge-v1" => Ok(CpuTypeX86_64::SandyBridgeV1),
1063            "SandyBridge-v2" => Ok(CpuTypeX86_64::SandyBridgeV2),
1064            "SapphireRapids" => Ok(CpuTypeX86_64::SapphireRapids),
1065            "SapphireRapids-v1" => Ok(CpuTypeX86_64::SapphireRapidsV1),
1066            "SapphireRapids-v2" => Ok(CpuTypeX86_64::SapphireRapidsV2),
1067            "SapphireRapids-v3" => Ok(CpuTypeX86_64::SapphireRapidsV3),
1068            "SapphireRapids-v4" => Ok(CpuTypeX86_64::SapphireRapidsV4),
1069            "SierraForest" => Ok(CpuTypeX86_64::SierraForest),
1070            "SierraForest-v1" => Ok(CpuTypeX86_64::SierraForestV1),
1071            "SierraForest-v2" => Ok(CpuTypeX86_64::SierraForestV2),
1072            "SierraForest-v3" => Ok(CpuTypeX86_64::SierraForestV3),
1073            "Skylake-Client" => Ok(CpuTypeX86_64::SkylakeClient),
1074            "Skylake-Client-IBRS" => Ok(CpuTypeX86_64::SkylakeClientIBRS),
1075            "Skylake-Client-noTSX-IBRS" => Ok(CpuTypeX86_64::SkylakeClientnoTSXIBRS),
1076            "Skylake-Client-v1" => Ok(CpuTypeX86_64::SkylakeClientV1),
1077            "Skylake-Client-v2" => Ok(CpuTypeX86_64::SkylakeClientV2),
1078            "Skylake-Client-v3" => Ok(CpuTypeX86_64::SkylakeClientV3),
1079            "Skylake-Client-v4" => Ok(CpuTypeX86_64::SkylakeClientV4),
1080            "Skylake-Server" => Ok(CpuTypeX86_64::SkylakeServer),
1081            "Skylake-Server-IBRS" => Ok(CpuTypeX86_64::SkylakeServerIBRS),
1082            "Skylake-Server-noTSX-IBRS" => Ok(CpuTypeX86_64::SkylakeServernoTSXIBRS),
1083            "Skylake-Server-v1" => Ok(CpuTypeX86_64::SkylakeServerV1),
1084            "Skylake-Server-v2" => Ok(CpuTypeX86_64::SkylakeServerV2),
1085            "Skylake-Server-v3" => Ok(CpuTypeX86_64::SkylakeServerV3),
1086            "Skylake-Server-v4" => Ok(CpuTypeX86_64::SkylakeServerV4),
1087            "Skylake-Server-v5" => Ok(CpuTypeX86_64::SkylakeServerV5),
1088            "Snowridge" => Ok(CpuTypeX86_64::Snowridge),
1089            "Snowridge-v1" => Ok(CpuTypeX86_64::SnowridgeV1),
1090            "Snowridge-v2" => Ok(CpuTypeX86_64::SnowridgeV2),
1091            "Snowridge-v3" => Ok(CpuTypeX86_64::SnowridgeV3),
1092            "Snowridge-v4" => Ok(CpuTypeX86_64::SnowridgeV4),
1093            "Westmere" => Ok(CpuTypeX86_64::Westmere),
1094            "Westmere-IBRS" => Ok(CpuTypeX86_64::WestmereIBRS),
1095            "Westmere-v1" => Ok(CpuTypeX86_64::WestmereV1),
1096            "Westmere-v2" => Ok(CpuTypeX86_64::WestmereV2),
1097            "YongFeng" => Ok(CpuTypeX86_64::YongFeng),
1098            "YongFeng-v1" => Ok(CpuTypeX86_64::YongFengV1),
1099            "YongFeng-v2" => Ok(CpuTypeX86_64::YongFengV2),
1100            "YongFeng-v3" => Ok(CpuTypeX86_64::YongFengV3),
1101            "athlon" => Ok(CpuTypeX86_64::Athlon),
1102            "athlon-v1" => Ok(CpuTypeX86_64::AthlonV1),
1103            "core2duo" => Ok(CpuTypeX86_64::Core2duo),
1104            "core2duo-v1" => Ok(CpuTypeX86_64::Core2duoV1),
1105            "coreduo" => Ok(CpuTypeX86_64::Coreduo),
1106            "coreduo-v1" => Ok(CpuTypeX86_64::CoreduoV1),
1107            "kvm32" => Ok(CpuTypeX86_64::Kvm32),
1108            "kvm32-v1" => Ok(CpuTypeX86_64::Kvm32V1),
1109            "kvm64" => Ok(CpuTypeX86_64::Kvm64),
1110            "kvm64-v1" => Ok(CpuTypeX86_64::Kvm64V1),
1111            "n270" => Ok(CpuTypeX86_64::N270),
1112            "n270-v1" => Ok(CpuTypeX86_64::N270V1),
1113            "pentium" => Ok(CpuTypeX86_64::Pentium),
1114            "pentium-v1" => Ok(CpuTypeX86_64::PentiumV1),
1115            "pentium2" => Ok(CpuTypeX86_64::Pentium2),
1116            "pentium2-v1" => Ok(CpuTypeX86_64::Pentium2V1),
1117            "pentium3" => Ok(CpuTypeX86_64::Pentium3),
1118            "pentium3-v1" => Ok(CpuTypeX86_64::Pentium3V1),
1119            "phenom" => Ok(CpuTypeX86_64::Phenom),
1120            "phenom-v1" => Ok(CpuTypeX86_64::PhenomV1),
1121            "qemu32" => Ok(CpuTypeX86_64::Qemu32),
1122            "qemu32-v1" => Ok(CpuTypeX86_64::Qemu32V1),
1123            "qemu64" => Ok(CpuTypeX86_64::Qemu64),
1124            "qemu64-v1" => Ok(CpuTypeX86_64::Qemu64V1),
1125            "base" => Ok(CpuTypeX86_64::Base),
1126            "max" => Ok(CpuTypeX86_64::Max),
1127            "host" => Ok(CpuTypeX86_64::Host),
1128            _ => Err(CpuNotFound),
1129        }
1130    }
1131}