Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/cpu/cpu.c

    rf24d300 rdc0b964  
    3939
    4040#include <arch.h>
    41 #include <arch/types.h>
     41#include <typedefs.h>
    4242#include <print.h>
    4343#include <fpu_context.h>
     
    4747 * Contains only non-MP-Specification specific SMP code.
    4848 */
    49 #define AMD_CPUID_EBX   0x68747541
    50 #define AMD_CPUID_ECX   0x444d4163
    51 #define AMD_CPUID_EDX   0x69746e65
     49#define AMD_CPUID_EBX  UINT32_C(0x68747541)
     50#define AMD_CPUID_ECX  UINT32_C(0x444d4163)
     51#define AMD_CPUID_EDX  UINT32_C(0x69746e65)
    5252
    53 #define INTEL_CPUID_EBX 0x756e6547
    54 #define INTEL_CPUID_ECX 0x6c65746e
    55 #define INTEL_CPUID_EDX 0x49656e69
    56 
     53#define INTEL_CPUID_EBX  UINT32_C(0x756e6547)
     54#define INTEL_CPUID_ECX  UINT32_C(0x6c65746e)
     55#define INTEL_CPUID_EDX  UINT32_C(0x49656e69)
    5756
    5857enum vendor {
     
    6261};
    6362
    64 static char *vendor_str[] = {
     63static const char *vendor_str[] = {
    6564        "Unknown Vendor",
    6665        "AuthenticAMD",
     
    127126{
    128127        cpu_info_t info;
    129 
     128       
    130129        CPU->arch.vendor = VendorUnknown;
    131130        if (has_cpuid()) {
    132                 cpuid(0, &info);
    133 
     131                cpuid(INTEL_CPUID_LEVEL, &info);
     132               
    134133                /*
    135134                 * Check for AMD processor.
    136135                 */
    137                 if (info.cpuid_ebx == AMD_CPUID_EBX &&
    138                     info.cpuid_ecx == AMD_CPUID_ECX &&
    139                     info.cpuid_edx == AMD_CPUID_EDX) {
     136                if ((info.cpuid_ebx == AMD_CPUID_EBX) &&
     137                    (info.cpuid_ecx == AMD_CPUID_ECX) &&
     138                    (info.cpuid_edx == AMD_CPUID_EDX)) {
    140139                        CPU->arch.vendor = VendorAMD;
    141140                }
    142 
     141               
    143142                /*
    144143                 * Check for Intel processor.
    145                  */             
    146                 if (info.cpuid_ebx == INTEL_CPUID_EBX &&
    147                     info.cpuid_ecx == INTEL_CPUID_ECX &&
    148                     info.cpuid_edx == INTEL_CPUID_EDX) {
     144                 */
     145                if ((info.cpuid_ebx == INTEL_CPUID_EBX) &&
     146                    (info.cpuid_ecx == INTEL_CPUID_ECX) &&
     147                    (info.cpuid_edx == INTEL_CPUID_EDX)) {
    149148                        CPU->arch.vendor = VendorIntel;
    150149                }
    151                                
    152                 cpuid(1, &info);
     150               
     151                cpuid(INTEL_CPUID_STANDARD, &info);
    153152                CPU->arch.family = (info.cpuid_eax >> 8) & 0xf;
    154153                CPU->arch.model = (info.cpuid_eax >> 4) & 0xf;
    155                 CPU->arch.stepping = (info.cpuid_eax >> 0) & 0xf;                                               
     154                CPU->arch.stepping = (info.cpuid_eax >> 0) & 0xf;
    156155        }
    157156}
Note: See TracChangeset for help on using the changeset viewer.