mirror of
https://github.com/panpaul/tiny_os
synced 2024-09-20 09:45:19 +08:00
chore: entry: store N_CPUS
This commit is contained in:
parent
5d5c18592f
commit
32e21b3468
@ -4,16 +4,21 @@ use crate::plat::timer::{Timer, TimerOps};
|
|||||||
use crate::plat::trap::{Trap, TrapOps};
|
use crate::plat::trap::{Trap, TrapOps};
|
||||||
use crate::scheduler::SCHEDULER;
|
use crate::scheduler::SCHEDULER;
|
||||||
use core::cell::Cell;
|
use core::cell::Cell;
|
||||||
|
use core::sync::atomic::{AtomicUsize, Ordering};
|
||||||
use fdt::Fdt;
|
use fdt::Fdt;
|
||||||
use log::{debug, error, info, warn};
|
use log::{debug, error, info, warn};
|
||||||
|
|
||||||
#[thread_local]
|
#[thread_local]
|
||||||
pub static HART_ID: Cell<usize> = Cell::new(0);
|
pub static HART_ID: Cell<usize> = Cell::new(0);
|
||||||
|
|
||||||
|
pub static N_CPUS: AtomicUsize = AtomicUsize::new(1);
|
||||||
|
|
||||||
pub fn rust_main() -> ! {
|
pub fn rust_main() -> ! {
|
||||||
let fdt_addr = crate::arch::FDT.load(core::sync::atomic::Ordering::Acquire);
|
let fdt_addr = crate::arch::FDT.load(Ordering::Acquire);
|
||||||
let fdt = unsafe { Fdt::from_ptr(fdt_addr).unwrap() };
|
let fdt = unsafe { Fdt::from_ptr(fdt_addr).unwrap() };
|
||||||
|
|
||||||
|
N_CPUS.store(fdt.cpus().count(), Ordering::Release);
|
||||||
|
|
||||||
setup_console(&fdt);
|
setup_console(&fdt);
|
||||||
info!("Kernel Started");
|
info!("Kernel Started");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user