mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-24 21:33:27 +00:00
ahci内存越界问题修复+ mm的bug修复+在rust中解析acpi table (#384)
* bugfix: 修复了Flusher Drop的时候没有自动刷新TLB的bug * 解决进程管理未初始化时,trap.c尝试打印pid导致错误的问题 * 设置kmalloc默认强制清0 * 修复ahci驱动的内存越界问题 * 修复mmio buddy忘记归还buddy block的问题 * 新增acpi模块,暂时能解析acpi tables
This commit is contained in:
@ -1,4 +1,6 @@
|
||||
use super::{kthread::kthread_init, process_init, ProcessManager};
|
||||
use crate::smp::core::smp_get_processor_id;
|
||||
|
||||
use super::{kthread::kthread_init, process_init, ProcessManager, __PROCESS_MANAGEMENT_INIT_DONE};
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rs_process_init() {
|
||||
@ -21,14 +23,15 @@ pub extern "C" fn rs_get_idle_stack_top(cpu_id: u32) -> usize {
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rs_current_pcb_cpuid() -> u32 {
|
||||
return ProcessManager::current_pcb()
|
||||
.sched_info()
|
||||
.on_cpu()
|
||||
.unwrap_or(u32::MAX);
|
||||
return smp_get_processor_id();
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rs_current_pcb_pid() -> u32 {
|
||||
return ProcessManager::current_pcb().pid().0 as u32;
|
||||
if unsafe { __PROCESS_MANAGEMENT_INIT_DONE } {
|
||||
return ProcessManager::current_pcb().pid().0 as u32;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
|
Reference in New Issue
Block a user