Pinned status bar
include/console/statusbar.h View source View on GitHubFunctions
Section titled “Functions”status_bar_open
Section titled “status_bar_open”void status_bar_open(void) source This is the only place that moves the cursor. DECSTBM (CSI top;bottom r) shrinks the region that scrolls, and CUP (CSI row; col H) addresses the row left outside it, so the bar stays pinned while log output scrolls above it.
We borrow the line writer for report.h to build the text
status_bar_close
Section titled “status_bar_close”void status_bar_close(void) source status_bar_set
Section titled “status_bar_set”void status_bar_set(const char *fmt) source status_bar_progress
Section titled “status_bar_progress”[####----] 34/120 (28%) <detail…>, painted onto the bar
status_bar_progress_timed
Section titled “status_bar_progress_timed”status_bar_reset
Section titled “status_bar_reset”void status_bar_reset(void) source Hand the whole screen back: drop the scroll region, forget the bar