18 lines
423 B
Zig
18 lines
423 B
Zig
const cpu = @import("cpu.zig");
|
|
const msr = @import("msr.zig");
|
|
const types = @import("types.zig");
|
|
|
|
fn baseAddress() [*]u32 {
|
|
const reg = cpu.rdmsr(msr.apic_base_address);
|
|
return @intToPtr([*]u32, reg >> 12 & 0xffffffffff);
|
|
}
|
|
|
|
pub fn bootstrapCpuCore() bool {
|
|
const reg = cpu.rdmsr(msr.apic_base_address);
|
|
return reg & 1 << 8 != 0;
|
|
}
|
|
|
|
pub fn cpuId() u8 {
|
|
return @intCast(u8, baseAddress()[5] >> 24);
|
|
}
|