setup TSS

This commit is contained in:
2025-02-22 03:16:13 +00:00
parent f5f5aeb8dc
commit d12160c5d0
+18
View File
@@ -0,0 +1,18 @@
use x86_64::{structures::tss::TaskStateSegment, VirtAddr};
use spin::Lazy;
pub const DOUBLE_FAULT_1ST_INDEX: u16 = 0;
static TSS: Lazy<TaskStateSegment> = Lazy::new(|| {
let mut tss = TaskStateSegment::new();
tss.interrupt_stack_table[DOUBLE_FAULT_1ST_INDEX as usize] = {
const STACK_SIZE: usize = 4096 * 8;
static mut STACK: [u8; STACK_SIZE] = [0; STACK_SIZE];
let stack_start = VirtAddr::from_ptr(&raw const STACK);
let stack_end = stack_start + STACK_SIZE.try_into().unwrap();
stack_end
};
tss
});