strat9_kernel/shell/commands/ps/
mod.rs1use crate::{shell::ShellError, shell_println};
3use alloc::string::String;
4
5pub fn cmd_ps(_args: &[String]) -> Result<(), ShellError> {
7 shell_println!("PID Name State Priority");
8 shell_println!("────────────────────────────────────────────────");
9
10 if let Some(tasks) = crate::process::get_all_tasks() {
11 for task in tasks {
12 let state = unsafe { *task.state.get() };
13 let state_str = match state {
14 crate::process::TaskState::Ready => "Ready",
15 crate::process::TaskState::Running => "Running",
16 crate::process::TaskState::Blocked => "Blocked",
17 crate::process::TaskState::Dead => "Dead",
18 };
19
20 shell_println!(
21 "{:<6} {:<17} {:<10} {:?}",
22 task.id.as_u64(),
23 task.name,
24 state_str,
25 task.priority
26 );
27 }
28 } else {
29 shell_println!(" No tasks available");
30 }
31
32 shell_println!("");
33 Ok(())
34}