int vprintk(const char *fmt, va_list args) { int loglvl = LOGLVL_DEFAULT; if (fmt[0] == '<') { if (!fmt[1]) return -E_INVALID; if (fmt[2] != '>') return -E_INVALID; loglvl = getlvl(fmt[1]); fmt += 3; } char buffer[2048] = ""; int num = strafmt(buffer, fmt, args); bool put_nl = buffer[num-1] != '\n'; int written = num; if (loglvl <= cur_console->loglevel()) { written = cur_console->puts(buffer); if (put_nl) cur_console->putc('\n'); } if (num != written) return -geterr(); return num; }
void rot(uchar * bd, int widthd, uchar * bs, int widths, int deltax, int deltay) { int xs, ys; int lvl; for(ys = 0; ys < deltay; ++ys) { for(xs = 0; xs < deltax; ++xs) { lvl = getlvl(bs, xs, ys, widths); putlvl(bd, ys, deltax - xs - 1, widthd, lvl); } } }