mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-24 04:53:23 +00:00
实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 (#474)
* 添加“统一初始化”的过程宏,并把SystemError独立成crate * 使用unified-init来初始化fbmem * 更新workflow,增加内核自动化静态测试
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
use core::{fmt::Debug, ptr::null};
|
||||
|
||||
use alloc::{collections::BTreeMap, string::String, sync::Arc, vec::Vec};
|
||||
use system_error::SystemError;
|
||||
|
||||
use crate::{
|
||||
driver::base::block::SeekFrom,
|
||||
@ -13,7 +14,6 @@ use crate::{
|
||||
ucontext::{AddressSpace, UserStack},
|
||||
VirtAddr,
|
||||
},
|
||||
syscall::SystemError,
|
||||
};
|
||||
|
||||
/// 系统支持的所有二进制文件加载器的列表
|
||||
|
@ -1,6 +1,7 @@
|
||||
use core::intrinsics::likely;
|
||||
|
||||
use alloc::sync::Arc;
|
||||
use system_error::SystemError;
|
||||
|
||||
use crate::{
|
||||
arch::{
|
||||
@ -9,7 +10,7 @@ use crate::{
|
||||
CurrentIrqArch,
|
||||
},
|
||||
exception::InterruptArch,
|
||||
syscall::{user_access::UserBufferWriter, SystemError},
|
||||
syscall::user_access::UserBufferWriter,
|
||||
};
|
||||
|
||||
use super::{
|
||||
|
@ -1,6 +1,7 @@
|
||||
use core::{intrinsics::unlikely, sync::atomic::Ordering};
|
||||
|
||||
use alloc::{string::ToString, sync::Arc};
|
||||
use system_error::SystemError;
|
||||
|
||||
use crate::{
|
||||
arch::{interrupt::TrapFrame, ipc::signal::Signal},
|
||||
@ -9,7 +10,7 @@ use crate::{
|
||||
libs::rwlock::RwLock,
|
||||
mm::VirtAddr,
|
||||
process::ProcessFlags,
|
||||
syscall::{user_access::UserBufferWriter, SystemError},
|
||||
syscall::user_access::UserBufferWriter,
|
||||
};
|
||||
|
||||
use super::{
|
||||
|
@ -42,7 +42,7 @@ impl ProcessManager {
|
||||
unsafe { ks.clear_pcb(true) };
|
||||
ks
|
||||
} else {
|
||||
KernelStack::new().unwrap_or_else(|e: crate::syscall::SystemError| {
|
||||
KernelStack::new().unwrap_or_else(|e| {
|
||||
panic!("Failed to create kernel stack struct for AP {}: {:?}", i, e)
|
||||
})
|
||||
};
|
||||
|
@ -10,6 +10,7 @@ use alloc::{
|
||||
sync::{Arc, Weak},
|
||||
};
|
||||
use atomic_enum::atomic_enum;
|
||||
use system_error::SystemError;
|
||||
|
||||
use crate::{
|
||||
arch::{sched::sched, CurrentIrqArch},
|
||||
@ -17,7 +18,6 @@ use crate::{
|
||||
kdebug, kinfo,
|
||||
libs::{once::Once, spinlock::SpinLock},
|
||||
process::{ProcessManager, ProcessState},
|
||||
syscall::SystemError,
|
||||
};
|
||||
|
||||
use super::{
|
||||
|
@ -12,6 +12,7 @@ use alloc::{
|
||||
vec::Vec,
|
||||
};
|
||||
use hashbrown::HashMap;
|
||||
use system_error::SystemError;
|
||||
|
||||
use crate::{
|
||||
arch::{
|
||||
@ -47,7 +48,7 @@ use crate::{
|
||||
SchedPolicy, SchedPriority,
|
||||
},
|
||||
smp::kick_cpu,
|
||||
syscall::{user_access::clear_user, Syscall, SystemError},
|
||||
syscall::{user_access::clear_user, Syscall},
|
||||
};
|
||||
|
||||
use self::kthread::WorkerPrivate;
|
||||
|
@ -1,10 +1,11 @@
|
||||
use system_error::SystemError;
|
||||
|
||||
use crate::{
|
||||
filesystem::vfs::{
|
||||
file::{File, FileMode},
|
||||
ROOT_INODE,
|
||||
},
|
||||
process::{Pid, ProcessManager},
|
||||
syscall::SystemError,
|
||||
};
|
||||
|
||||
/// @brief 初始化pid=1的进程的stdio
|
||||
|
@ -1,6 +1,7 @@
|
||||
use num_traits::FromPrimitive;
|
||||
use system_error::SystemError;
|
||||
|
||||
use crate::{syscall::SystemError, time::TimeSpec};
|
||||
use crate::time::TimeSpec;
|
||||
|
||||
use super::ProcessControlBlock;
|
||||
|
||||
|
@ -5,6 +5,7 @@ use alloc::{
|
||||
sync::Arc,
|
||||
vec::Vec,
|
||||
};
|
||||
use system_error::SystemError;
|
||||
|
||||
use super::{
|
||||
abi::WaitOption,
|
||||
@ -24,7 +25,7 @@ use crate::{
|
||||
sched::completion::Completion,
|
||||
syscall::{
|
||||
user_access::{check_and_clone_cstr, check_and_clone_cstr_array, UserBufferWriter},
|
||||
Syscall, SystemError,
|
||||
Syscall,
|
||||
},
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user