Rev 1 | Rev 16 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1 | Rev 15 | ||
---|---|---|---|
Line 59... | Line 59... | ||
59 | "GenuineIntel" |
59 | "GenuineIntel" |
60 | }; |
60 | }; |
61 | 61 | ||
62 | void cpu_arch_init(void) |
62 | void cpu_arch_init(void) |
63 | { |
63 | { |
64 | the->cpu->arch.tss = tss_p; |
64 | CPU->arch.tss = tss_p; |
65 | } |
65 | } |
66 | 66 | ||
67 | 67 | ||
68 | void cpu_identify(void) |
68 | void cpu_identify(void) |
69 | { |
69 | { |
70 | cpu_info_t info; |
70 | cpu_info_t info; |
71 | int i; |
71 | int i; |
72 | 72 | ||
73 | the->cpu->arch.vendor = VendorUnknown; |
73 | CPU->arch.vendor = VendorUnknown; |
74 | if (has_cpuid()) { |
74 | if (has_cpuid()) { |
75 | cpuid(0, &info); |
75 | cpuid(0, &info); |
76 | 76 | ||
77 | /* |
77 | /* |
78 | * Check for AMD processor. |
78 | * Check for AMD processor. |
79 | */ |
79 | */ |
80 | if (info.cpuid_ebx==AMD_CPUID_EBX && |
80 | if (info.cpuid_ebx==AMD_CPUID_EBX && |
81 | info.cpuid_ecx==AMD_CPUID_ECX && |
81 | info.cpuid_ecx==AMD_CPUID_ECX && |
82 | info.cpuid_edx==AMD_CPUID_EDX) { |
82 | info.cpuid_edx==AMD_CPUID_EDX) { |
83 | 83 | ||
84 | the->cpu->arch.vendor = VendorAMD; |
84 | CPU->arch.vendor = VendorAMD; |
85 | } |
85 | } |
86 | 86 | ||
87 | /* |
87 | /* |
88 | * Check for Intel processor. |
88 | * Check for Intel processor. |
89 | */ |
89 | */ |
90 | if (info.cpuid_ebx==INTEL_CPUID_EBX && |
90 | if (info.cpuid_ebx==INTEL_CPUID_EBX && |
91 | info.cpuid_ecx==INTEL_CPUID_ECX && |
91 | info.cpuid_ecx==INTEL_CPUID_ECX && |
92 | info.cpuid_edx==INTEL_CPUID_EDX) { |
92 | info.cpuid_edx==INTEL_CPUID_EDX) { |
93 | 93 | ||
94 | the->cpu->arch.vendor = VendorIntel; |
94 | CPU->arch.vendor = VendorIntel; |
95 | 95 | ||
96 | } |
96 | } |
97 | 97 | ||
98 | cpuid(1, &info); |
98 | cpuid(1, &info); |
99 | the->cpu->arch.family = (info.cpuid_eax>>8)&0xf; |
99 | CPU->arch.family = (info.cpuid_eax>>8)&0xf; |
100 | the->cpu->arch.model = (info.cpuid_eax>>4)&0xf; |
100 | CPU->arch.model = (info.cpuid_eax>>4)&0xf; |
101 | the->cpu->arch.stepping = (info.cpuid_eax>>0)&0xf; |
101 | CPU->arch.stepping = (info.cpuid_eax>>0)&0xf; |
102 | } |
102 | } |
103 | } |
103 | } |
104 | 104 | ||
105 | void cpu_print_report(struct cpu* m) |
105 | void cpu_print_report(struct cpu* m) |
106 | { |
106 | { |