Struct os::task::task::TaskControlBlockInner
source · pub struct TaskControlBlockInner {Show 18 fields
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 signals: SignalFlags,
pub signal_mask: SignalFlags,
pub handling_sig: isize,
pub signal_actions: SignalActions,
pub killed: bool,
pub frozen: bool,
pub trap_ctx_backup: Option<TrapContext>,
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>>>§signals: SignalFlags§signal_mask: SignalFlags§handling_sig: isize§signal_actions: SignalActions§killed: bool§frozen: bool§trap_ctx_backup: Option<TrapContext>§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 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