strat9_kernel/hal/x86_64/
mod.rs1use super::Hal;
4
5pub struct X86_64Hal;
7
8impl Hal for X86_64Hal {
9 fn init() {
10 crate::serial_println!("[hal] x86_64 HAL initialized");
11 }
12
13 fn setup_paging() {
14 crate::serial_println!("[hal] x86_64 paging setup delegated to memory subsystem");
16 }
17
18 fn init_interrupt_controller() {
19 crate::serial_println!("[hal] x86_64 interrupt controller (APIC) init delegated");
21 }
22
23 fn enable_interrupts() {
24 unsafe {
25 core::arch::asm!("sti");
26 }
27 }
28
29 fn disable_interrupts() {
30 unsafe {
31 core::arch::asm!("cli");
32 }
33 }
34
35 fn halt() {
36 unsafe {
37 core::arch::asm!("hlt");
38 }
39 }
40
41 fn current_cpu_id() -> u32 {
42 0
45 }
46
47 fn kernel_text_start() -> u64 {
48 0xFFFFFFFF80000000
50 }
51
52 fn kernel_text_end() -> u64 {
53 0xFFFFFFFF80000000
55 }
56}