Commit c6fa82c4e90d629e16f8dda990f63cec73103cac
Committed by
Anthony Liguori
1 parent
b827df58
Make x86 cpuid feature names available in file scope
To be used later. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
1 changed file
with
28 additions
and
27 deletions
target-i386/helper.c
@@ -32,39 +32,40 @@ | @@ -32,39 +32,40 @@ | ||
32 | 32 | ||
33 | //#define DEBUG_MMU | 33 | //#define DEBUG_MMU |
34 | 34 | ||
35 | +/* feature flags taken from "Intel Processor Identification and the CPUID | ||
36 | + * Instruction" and AMD's "CPUID Specification". In cases of disagreement | ||
37 | + * about feature names, the Linux name is used. */ | ||
38 | +static const char *feature_name[] = { | ||
39 | + "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce", | ||
40 | + "cx8", "apic", NULL, "sep", "mtrr", "pge", "mca", "cmov", | ||
41 | + "pat", "pse36", "pn" /* Intel psn */, "clflush" /* Intel clfsh */, NULL, "ds" /* Intel dts */, "acpi", "mmx", | ||
42 | + "fxsr", "sse", "sse2", "ss", "ht" /* Intel htt */, "tm", "ia64", "pbe", | ||
43 | +}; | ||
44 | +static const char *ext_feature_name[] = { | ||
45 | + "pni" /* Intel,AMD sse3 */, NULL, NULL, "monitor", "ds_cpl", "vmx", NULL /* Linux smx */, "est", | ||
46 | + "tm2", "ssse3", "cid", NULL, NULL, "cx16", "xtpr", NULL, | ||
47 | + NULL, NULL, "dca", NULL, NULL, NULL, NULL, "popcnt", | ||
48 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
49 | +}; | ||
50 | +static const char *ext2_feature_name[] = { | ||
51 | + "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce", | ||
52 | + "cx8" /* AMD CMPXCHG8B */, "apic", NULL, "syscall", "mtrr", "pge", "mca", "cmov", | ||
53 | + "pat", "pse36", NULL, NULL /* Linux mp */, "nx" /* Intel xd */, NULL, "mmxext", "mmx", | ||
54 | + "fxsr", "fxsr_opt" /* AMD ffxsr */, "pdpe1gb" /* AMD Page1GB */, "rdtscp", NULL, "lm" /* Intel 64 */, "3dnowext", "3dnow", | ||
55 | +}; | ||
56 | +static const char *ext3_feature_name[] = { | ||
57 | + "lahf_lm" /* AMD LahfSahf */, "cmp_legacy", "svm", "extapic" /* AMD ExtApicSpace */, "cr8legacy" /* AMD AltMovCr8 */, "abm", "sse4a", "misalignsse", | ||
58 | + "3dnowprefetch", "osvw", NULL /* Linux ibs */, NULL, "skinit", "wdt", NULL, NULL, | ||
59 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
60 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
61 | +}; | ||
62 | + | ||
35 | static void add_flagname_to_bitmaps(char *flagname, uint32_t *features, | 63 | static void add_flagname_to_bitmaps(char *flagname, uint32_t *features, |
36 | uint32_t *ext_features, | 64 | uint32_t *ext_features, |
37 | uint32_t *ext2_features, | 65 | uint32_t *ext2_features, |
38 | uint32_t *ext3_features) | 66 | uint32_t *ext3_features) |
39 | { | 67 | { |
40 | int i; | 68 | int i; |
41 | - /* feature flags taken from "Intel Processor Identification and the CPUID | ||
42 | - * Instruction" and AMD's "CPUID Specification". In cases of disagreement | ||
43 | - * about feature names, the Linux name is used. */ | ||
44 | - static const char *feature_name[] = { | ||
45 | - "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce", | ||
46 | - "cx8", "apic", NULL, "sep", "mtrr", "pge", "mca", "cmov", | ||
47 | - "pat", "pse36", "pn" /* Intel psn */, "clflush" /* Intel clfsh */, NULL, "ds" /* Intel dts */, "acpi", "mmx", | ||
48 | - "fxsr", "sse", "sse2", "ss", "ht" /* Intel htt */, "tm", "ia64", "pbe", | ||
49 | - }; | ||
50 | - static const char *ext_feature_name[] = { | ||
51 | - "pni" /* Intel,AMD sse3 */, NULL, NULL, "monitor", "ds_cpl", "vmx", NULL /* Linux smx */, "est", | ||
52 | - "tm2", "ssse3", "cid", NULL, NULL, "cx16", "xtpr", NULL, | ||
53 | - NULL, NULL, "dca", NULL, NULL, NULL, NULL, "popcnt", | ||
54 | - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
55 | - }; | ||
56 | - static const char *ext2_feature_name[] = { | ||
57 | - "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce", | ||
58 | - "cx8" /* AMD CMPXCHG8B */, "apic", NULL, "syscall", "mtrr", "pge", "mca", "cmov", | ||
59 | - "pat", "pse36", NULL, NULL /* Linux mp */, "nx" /* Intel xd */, NULL, "mmxext", "mmx", | ||
60 | - "fxsr", "fxsr_opt" /* AMD ffxsr */, "pdpe1gb" /* AMD Page1GB */, "rdtscp", NULL, "lm" /* Intel 64 */, "3dnowext", "3dnow", | ||
61 | - }; | ||
62 | - static const char *ext3_feature_name[] = { | ||
63 | - "lahf_lm" /* AMD LahfSahf */, "cmp_legacy", "svm", "extapic" /* AMD ExtApicSpace */, "cr8legacy" /* AMD AltMovCr8 */, "abm", "sse4a", "misalignsse", | ||
64 | - "3dnowprefetch", "osvw", NULL /* Linux ibs */, NULL, "skinit", "wdt", NULL, NULL, | ||
65 | - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
66 | - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | ||
67 | - }; | ||
68 | 69 | ||
69 | for ( i = 0 ; i < 32 ; i++ ) | 70 | for ( i = 0 ; i < 32 ; i++ ) |
70 | if (feature_name[i] && !strcmp (flagname, feature_name[i])) { | 71 | if (feature_name[i] && !strcmp (flagname, feature_name[i])) { |