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}