ableos/ableos/src/arch/x86_64/init.rs

26 lines
563 B
Rust

// #![allow(clippy::print_literal)]
use crate::{logger, SCHEDULER};
use super::{gdt, interrupts};
/// x86_64 initialization
pub fn init() {
let result = logger::init();
match result {
Ok(_) => {}
Err(err) => error!("{}", err),
}
gdt::init();
use crate::scheduler::Priority;
let mut scheduler = SCHEDULER.lock();
use Priority::*;
scheduler.new_process(High);
drop(scheduler);
interrupts::init_idt();
unsafe { interrupts::PICS.lock().initialize() };
x86_64::instructions::interrupts::enable();
}