/*******************************************************************************/ /* COS2000 - Compatible Operating System - LGPL v3 - Hordé Nicolas */ /* */ #include "interrupts.h" typedef struct cpuinfo { u8 vendor[13]; u8 names[32]; u8 detectedname[256]; u8 techs[256]; u8 stepping; u8 models; u8 family; u8 types; u8 emodels; u8 efamily; u8 apicid; u8 count; u8 linesize; u8 brandid; bool mmx; bool mmx2; bool sse; bool sse2; bool sse3; bool fpu; bool now3d; bool now3d2; bool htt; bool apic; bool bits64; bool syscall; bool msr; bool sse4a; bool vmx; bool sse41; bool sse42; bool apic2; } cpuinfo __attribute__ ((packed)); bool cansetflag(u32 flag); void cpuid(u32 op, u32 * eax, u32 * ebx, u32 * ecx, u32 * edx); u8 getcpuinfos(cpuinfo * inf); void show_cpu(regs * stack); void cpuerror(const u8 * src, const regs * dump, bool returnto);