diff options
Diffstat (limited to 'shell/src')
| -rw-r--r-- | shell/src/lib.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/shell/src/lib.rs b/shell/src/lib.rs index 3090776..b2c4a1b 100644 --- a/shell/src/lib.rs +++ b/shell/src/lib.rs | |||
| @@ -722,6 +722,7 @@ write `{} <path> TIL <marker>`", | |||
| 722 | "kill" => cmd_kill(&parsed), | 722 | "kill" => cmd_kill(&parsed), |
| 723 | "demo" => cmd_demo(&parsed), | 723 | "demo" => cmd_demo(&parsed), |
| 724 | "fault" => cmd_fault(), | 724 | "fault" => cmd_fault(), |
| 725 | "stall" => cmd_stall(&parsed), | ||
| 725 | _ => term_err(&alloc::format!("unknown command: {}", cmd)), | 726 | _ => term_err(&alloc::format!("unknown command: {}", cmd)), |
| 726 | } | 727 | } |
| 727 | } | 728 | } |
| @@ -819,6 +820,17 @@ fn cmd_fault() { | |||
| 819 | } | 820 | } |
| 820 | } | 821 | } |
| 821 | 822 | ||
| 823 | /// Set the display-store stall (cycles per word) — diagnostics knob that | ||
| 824 | /// simulates the per-write cost of an uncached real-GPU framebuffer so | ||
| 825 | /// the preemptive scheduler races long scroll pushes like on real | ||
| 826 | /// hardware. `stall 0` disables (default; QEMU RAM framebuffers are | ||
| 827 | /// instant). | ||
| 828 | fn cmd_stall(p: &Parsed) { | ||
| 829 | let n: u32 = p.args.first().and_then(|a| a.parse().ok()).unwrap_or(0); | ||
| 830 | rsnix::gop::DISPLAY_STALL.store(n, core::sync::atomic::Ordering::Relaxed); | ||
| 831 | term_println(&alloc::format!("stall: display store stall = {}", n)); | ||
| 832 | } | ||
| 833 | |||
| 822 | fn cmd_clear() { | 834 | fn cmd_clear() { |
| 823 | rsnix::gop::clear_screen(); | 835 | rsnix::gop::clear_screen(); |
| 824 | } | 836 | } |
