From e9d82983e1de5365deed5ce16f59b81387b17a9c Mon Sep 17 00:00:00 2001 From: LoGin Date: Tue, 27 May 2025 14:03:09 +0800 Subject: [PATCH] =?UTF-8?q?refactor(x86=5F64/process):=20=E7=AE=80?= =?UTF-8?q?=E5=8C=96TSSManager=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=20(#1179)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除TSSManager::new()构造函数,改为直接初始化静态变量 Signed-off-by: longjin --- kernel/src/arch/x86_64/process/table.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/kernel/src/arch/x86_64/process/table.rs b/kernel/src/arch/x86_64/process/table.rs index cbe5d787..40016d0b 100644 --- a/kernel/src/arch/x86_64/process/table.rs +++ b/kernel/src/arch/x86_64/process/table.rs @@ -16,7 +16,9 @@ pub const USER_DS: SegmentSelector = SegmentSelector::new(5, Ring::Ring3); /// 如果改这里,记得改syscall_64里面写死的常量 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" { static mut GDT_Table: [u64; 512]; @@ -36,12 +38,6 @@ pub struct TSSManager { } impl TSSManager { - const fn new() -> Self { - return Self { - tss: [TaskStateSegment::new(); PerCpu::MAX_CPU_NUM as usize], - }; - } - /// 获取当前CPU的TSS pub unsafe fn current_tss() -> &'static mut TaskStateSegment { &mut TSS_MANAGER.tss[smp_get_processor_id().data() as usize]