kernel_thread/task/
pcb.rsuse core::time::Duration;
use libc_core::time::ITimerVal;
use spin::Mutex;
pub struct ProcessControlBlock {
pub itimer: Mutex<[ProcessTimer; 3]>,
}
#[derive(Debug, Clone, Default, zerocopy::KnownLayout)]
pub struct ProcessTimer {
pub timer: ITimerVal,
pub next: Duration,
}
impl ProcessControlBlock {
pub fn new() -> Self {
Self {
itimer: Mutex::new([
ProcessTimer::default(),
ProcessTimer::default(),
ProcessTimer::default(),
]),
}
}
}
impl Default for ProcessControlBlock {
fn default() -> Self {
Self::new()
}
}