mirror of
https://github.com/gbowne1/ClassicOS.git
synced 2026-01-11 17:15:19 -08:00
Enhance cpu.h with Intel model definitions and struct
Added Intel model definitions and CPU info structure.
This commit is contained in:
36
kernel/cpu.h
36
kernel/cpu.h
@@ -2,8 +2,42 @@
|
|||||||
#define CPU_H
|
#define CPU_H
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
void cpuid(uint32_t function, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
|
// Specific Intel Model Definitions for your targets
|
||||||
|
#define INTEL_FAM4_486_DX 0x00 // Also 0x01
|
||||||
|
#define INTEL_FAM4_486_SX 0x02
|
||||||
|
#define INTEL_FAM4_486_DX2 0x03
|
||||||
|
#define INTEL_FAM4_486_DX4 0x08
|
||||||
|
#define INTEL_FAM5_PENTIUM 0x01 // P5
|
||||||
|
#define INTEL_FAM5_PENTIUM_MMX 0x04 // P55C
|
||||||
|
#define INTEL_FAM6_PENTIUM_PRO 0x01 // P6
|
||||||
|
#define INTEL_FAM6_PENTIUM_II 0x05 // Deschutes
|
||||||
|
#define INTEL_FAM6_PENTIUM_III 0x07 // Katmai/Coppermine
|
||||||
|
#define INTEL_FAM15_P4_WILLY 0x00 // Willamette
|
||||||
|
#define INTEL_FAM15_P4_NORTH 0x02 // Northwood
|
||||||
|
#define INTEL_FAM15_P4_PRES 0x03 // Prescott
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char vendor[13];
|
||||||
|
uint32_t family;
|
||||||
|
uint32_t model;
|
||||||
|
uint32_t stepping;
|
||||||
|
uint32_t type;
|
||||||
|
uint32_t max_leaf;
|
||||||
|
|
||||||
|
// Feature flags (optional, but very helpful later)
|
||||||
|
bool has_fpu;
|
||||||
|
bool has_mmx;
|
||||||
|
bool has_sse;
|
||||||
|
} cpu_info_t;
|
||||||
|
|
||||||
|
// Function Prototypes
|
||||||
|
void cpuid(uint32_t leaf, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
|
||||||
|
bool cpu_check_cpuid_support(void);
|
||||||
void identify_cpu(void);
|
void identify_cpu(void);
|
||||||
|
|
||||||
|
// Helper to get the current CPU info after identification
|
||||||
|
cpu_info_t* cpu_get_info(void);
|
||||||
|
|
||||||
#endif // CPU_H
|
#endif // CPU_H
|
||||||
|
|||||||
Reference in New Issue
Block a user