Struct os::task::task::TaskControlBlockInner
source · pub struct TaskControlBlockInner {
pub trap_cx_ppn: PhysPageNum,
pub base_size: usize,
pub task_cx: TaskContext,
pub task_status: TaskStatus,
pub memory_set: MemorySet,
pub parent: Option<Weak<TaskControlBlock>>,
pub children: Vec<Arc<TaskControlBlock>>,
pub exit_code: i32,
pub heap_bottom: usize,
pub program_brk: usize,
}Fields§
§trap_cx_ppn: PhysPageNumThe physical page number of the frame where the trap context is placed
base_size: usizeApplication data can only appear in areas where the application address space is lower than base_size
task_cx: TaskContextSave task context
task_status: TaskStatusMaintain the execution status of the current process
memory_set: MemorySetApplication address space
parent: Option<Weak<TaskControlBlock>>Parent process of the current process. Weak will not affect the reference count of the parent
children: Vec<Arc<TaskControlBlock>>A vector containing TCBs of all child processes of the current process
exit_code: i32It is set when active exit or execution error occurs
heap_bottom: usizeHeap bottom
program_brk: usizeProgram break
Implementations§
source§impl TaskControlBlockInner
impl TaskControlBlockInner
sourcepub fn get_trap_cx(&self) -> &'static mut TrapContext
pub fn get_trap_cx(&self) -> &'static mut TrapContext
get the trap context
sourcepub fn get_user_token(&self) -> usize
pub fn get_user_token(&self) -> usize
get the user token
fn get_status(&self) -> TaskStatus
pub fn is_zombie(&self) -> bool
Auto Trait Implementations§
impl Freeze for TaskControlBlockInner
impl !RefUnwindSafe for TaskControlBlockInner
impl Send for TaskControlBlockInner
impl Sync for TaskControlBlockInner
impl Unpin for TaskControlBlockInner
impl !UnwindSafe for TaskControlBlockInner
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more