refactor(x86_64/process): 简化TSSManager初始化方式 (#1179)

移除TSSManager::new()构造函数,改为直接初始化静态变量

Signed-off-by: longjin <longjin@DragonOS.org>
This commit is contained in:
LoGin 2025-05-27 14:03:09 +08:00 committed by GitHub
parent ef9c935732
commit e9d82983e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -16,7 +16,9 @@ pub const USER_DS: SegmentSelector = SegmentSelector::new(5, Ring::Ring3);
/// 如果改这里记得改syscall_64里面写死的常量 /// 如果改这里记得改syscall_64里面写死的常量
pub const USER_CS: SegmentSelector = SegmentSelector::new(6, Ring::Ring3); pub const USER_CS: SegmentSelector = SegmentSelector::new(6, Ring::Ring3);
static mut TSS_MANAGER: TSSManager = TSSManager::new(); static mut TSS_MANAGER: TSSManager = TSSManager {
tss: [TaskStateSegment::new(); PerCpu::MAX_CPU_NUM as usize],
};
extern "C" { extern "C" {
static mut GDT_Table: [u64; 512]; static mut GDT_Table: [u64; 512];
@ -36,12 +38,6 @@ pub struct TSSManager {
} }
impl TSSManager { impl TSSManager {
const fn new() -> Self {
return Self {
tss: [TaskStateSegment::new(); PerCpu::MAX_CPU_NUM as usize],
};
}
/// 获取当前CPU的TSS /// 获取当前CPU的TSS
pub unsafe fn current_tss() -> &'static mut TaskStateSegment { pub unsafe fn current_tss() -> &'static mut TaskStateSegment {
&mut TSS_MANAGER.tss[smp_get_processor_id().data() as usize] &mut TSS_MANAGER.tss[smp_get_processor_id().data() as usize]