|
@@ -2,6 +2,7 @@ use core::arch::asm;
|
|
|
use core::marker::PhantomPinned;
|
|
use core::marker::PhantomPinned;
|
|
|
use core::mem::size_of;
|
|
use core::mem::size_of;
|
|
|
use core::pin::Pin;
|
|
use core::pin::Pin;
|
|
|
|
|
+use core::sync::atomic::AtomicUsize;
|
|
|
|
|
|
|
|
use eonix_preempt::PreemptGuard;
|
|
use eonix_preempt::PreemptGuard;
|
|
|
use eonix_sync_base::LazyLock;
|
|
use eonix_sync_base::LazyLock;
|
|
@@ -10,6 +11,8 @@ use super::gdt::{GDTEntry, GDT};
|
|
|
use super::interrupt::InterruptControl;
|
|
use super::interrupt::InterruptControl;
|
|
|
use super::trap::TrapContext;
|
|
use super::trap::TrapContext;
|
|
|
|
|
|
|
|
|
|
+pub static CPU_COUNT: AtomicUsize = AtomicUsize::new(0);
|
|
|
|
|
+
|
|
|
#[eonix_percpu::define_percpu]
|
|
#[eonix_percpu::define_percpu]
|
|
|
static LOCAL_CPU: LazyLock<CPU> = LazyLock::new(CPU::new);
|
|
static LOCAL_CPU: LazyLock<CPU> = LazyLock::new(CPU::new);
|
|
|
|
|
|