Exemple #1
0
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');
}
Exemple #2
0
void panic(char *s)
{
    monitor_puts(s);
    while (1)
    {
        hlt();
    }
}
Exemple #3
0
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);
}