Changeset e515167d in mainline for arch/amd64/src/cpu/cpu.c
- Timestamp:
- 2005-09-03T09:52:47Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- be56c17
- Parents:
- 5a5ed25
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/amd64/src/cpu/cpu.c
r5a5ed25 re515167d 63 63 void set_TS_flag(void) 64 64 { 65 asm 66 ( 65 __asm__ volatile ( 67 66 "mov %%cr0,%%rax;" 68 67 "or $8,%%rax;" … … 71 70 : 72 71 :"%rax" 73 );72 ); 74 73 } 75 74 76 75 void reset_TS_flag(void) 77 76 { 78 asm 79 ( 77 __asm__ volatile ( 80 78 "mov %%cr0,%%rax;" 81 79 "btc $4,%%rax;" … … 84 82 : 85 83 :"%rax" 86 );84 ); 87 85 } 86 87 void cpu_arch_init(void) 88 { 89 CPU->arch.tss = tss_p; 90 CPU->fpu_owner=NULL; 91 } 92 93 94 void cpu_identify(void) 95 { 96 cpu_info_t info; 97 int i; 98 99 CPU->arch.vendor = VendorUnknown; 100 if (has_cpuid()) { 101 cpuid(0, &info); 102 103 /* 104 * Check for AMD processor. 105 */ 106 if (info.cpuid_ebx==AMD_CPUID_EBX && info.cpuid_ecx==AMD_CPUID_ECX && info.cpuid_edx==AMD_CPUID_EDX) { 107 CPU->arch.vendor = VendorAMD; 108 } 109 110 /* 111 * Check for Intel processor. 112 */ 113 if (info.cpuid_ebx==INTEL_CPUID_EBX && info.cpuid_ecx==INTEL_CPUID_ECX && info.cpuid_edx==INTEL_CPUID_EDX) { 114 CPU->arch.vendor = VendorIntel; 115 } 116 117 cpuid(1, &info); 118 CPU->arch.family = (info.cpuid_eax>>8)&0xf; 119 CPU->arch.model = (info.cpuid_eax>>4)&0xf; 120 CPU->arch.stepping = (info.cpuid_eax>>0)&0xf; 121 } 122 } 123 124 void cpu_print_report(cpu_t* m) 125 { 126 printf("cpu%d: (%s family=%d model=%d stepping=%d) %dMHz\n", 127 m->id, vendor_str[m->arch.vendor], m->arch.family, m->arch.model, m->arch.stepping, 128 m->frequency_mhz); 129 }
Note:
See TracChangeset
for help on using the changeset viewer.