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 fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>,
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
fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>§heap_bottom: usizeHeap bottom
program_brk: usizeProgram break
Implementations§
source§impl TaskControlBlockInner
impl TaskControlBlockInner
pub fn get_trap_cx(&self) -> &'static mut TrapContext
pub fn get_user_token(&self) -> usize
fn get_status(&self) -> TaskStatus
pub fn is_zombie(&self) -> bool
pub fn alloc_fd(&mut self) -> usize
Auto Trait Implementations§
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