Skip to main content

kernel/arch/x86_64/
mod.rs

1// SPDX-License-Identifier: GPL-3.0-only
2//! x86_64-specific kernel subsystems: GDT, TSS, IDT, PIC, and interrupt handlers.
3//!
4//! Authors: MarioS271
5
6pub(crate) mod instructions;
7pub(crate) mod tables;
8mod interrupts;
9
10/// Initialize the TSS, GDT, IDT, and PIC — everything required before enabling interrupts.
11pub(crate) fn init() {
12    use crate::state::kstate::KState;
13
14    let cpu = &KState::get().cpu;
15
16    cpu.tss[0].init();
17    cpu.gdt[0].init(&cpu.tss[0]);
18    cpu.idt.init();
19
20    interrupts::pic::init();
21}