void monitor_put_hex(u32int n) { int i=14, remain; char digit[16]; digit[15] = '\0'; digit[i] = '0' + n % 16; if (digit[i] > '9') { digit[i] = 'A' + (digit[i] - '9' - 1); } remain = n / 16; while (remain) { i--; digit[i] = '0' + remain %16; if (digit[i] > '9') { digit[i] = 'A' + (digit[i] - '9' - 1); } remain = remain / 16; } digit[i-1] = 'x'; digit[i-2] = '0'; monitor_puts(digit+i-2); monitor_putc('\n'); }
void panic(char *s) { monitor_puts(s); while (1) { hlt(); } }
void monitor_put_dec(u32int n) { int i=14, remain; char digit[16]; digit[15] = '\0'; digit[i] = '0' + n % 10; remain = n / 10; while(remain) { i --; digit[i] = '0' + remain % 10; remain /= 10; } monitor_puts(digit+i); monitor_putc('\n'); }
void monitor_vprintf(Monitor* mon, const char* fmt, va_list args) { char buf[4096]; vsnprintf(buf, sizeof(buf), fmt, args); monitor_puts(mon, buf); }