Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #include <ddk.h>
  2. #include <syscall.h>
  3. #include <linux/pci.h>
  4. #include <asm/processor.h>
  5.  
  6. void cpu_detect(struct cpuinfo_x86 *c)
  7. {
  8.     static u32 eax, dummy;    
  9.     cpuid(1, &eax, &dummy, &dummy, (int *) &c->x86_capability);
  10.         c->x86 = (eax >> 8) & 0xf;
  11.         c->x86_model = (eax >> 4) & 0xf;
  12.    
  13.     if (c->x86 == 0xf){
  14.             c->x86 += (eax >> 20) & 0xff;
  15.     }
  16.         if (c->x86 >= 0x6){
  17.             c->x86_model += ((eax >> 16) & 0xf) << 4;
  18.     }
  19.         c->x86_mask = eax & 0xf;
  20. }
  21.