aboutsummaryrefslogtreecommitdiff
path: root/mirai/boot/sequence/phases/cpu.zig
blob: addf1fea8f6d6974b0fc4f7c1ceaf1b507a45ded (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! CPU Phase

const gdt = @import("../../gdt/gdt.zig");
const tss = @import("../../tss/tss.zig");
const tss_constants = @import("../../tss/constants/constants.zig");
const serial = @import("../../../drivers/serial/serial.zig");

pub fn execute() bool {
    serial.printf("Setting up Task State Segment for CPU exceptions\n", .{});
    tss.initialize_boot();

    serial.printf("Setting up Global Descriptor Table with kernel and user segments\n", .{});
    const tss_address = tss.get_boot_tss_address();
    gdt.initialize(tss_address, tss_constants.tss_size);

    return true;
}