luxos/SysCore/hal/cpu/cpu.c

28 lines
510 B
C

#include <system.h>
#include "cpu.h"
#include "../gdt/gdt.h"
#include "../idt/idt.h"
#define cpuid(in, a, b, c, d) __asm__("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in));
// initializes cpu resources
void i86_cpu_initialize()
{
// initialize processor tables
i86_gdt_install();
i86_idt_install();
}
void i86_cpu_shutdown()
{
}
char* i86_cpu_get_vender()
{
dword unused;
dword static arr[3];
cpuid(0, unused, arr[0], arr[2], arr[1]);
return (char*) arr;
}