Beispiel #1
0
int
iprint(char *fmt, ...)
{
	Mpl pl;
	int i, n, locked;
	va_list arg;
	char buf[PRINTSIZE];

	pl = splhi();
	va_start(arg, fmt);
	n = vseprint(buf, buf+sizeof(buf), fmt, arg) - buf;
	va_end(arg);
	locked = iprintcanlock(&iprintlock);
	for(i = 0; i < nconsdevs; i++)
		if((consdevs[i].flags&Ciprint) != 0){
			if(consdevs[i].q != nil)
				qiwrite(consdevs[i].q, buf, n);
			else
				consdevs[i].fn(buf, n);
		}
	if(locked)
		unlock(&iprintlock);
	splx(pl);

	return n;
}
Beispiel #2
0
int
iprint(char *fmt, ...)
{
	int n, s, locked;
	va_list arg;
	char buf[PRINTSIZE];

	s = splhi();
	va_start(arg, fmt);
	n = vseprint(buf, buf+sizeof(buf), fmt, arg) - buf;
	va_end(arg);
	locked = iprintcanlock(&iprintlock);
	if(screenputs != nil && iprintscreenputs)
		screenputs(buf, n);
	uartputs(buf, n);
	if(locked)
		unlock(&iprintlock);
	splx(s);

	return n;
}
Beispiel #3
0
int iprint(char *fmt, ...)
{
    int8_t s = 0;
    int n, locked;
    va_list arg;
    char buf[PRINTSIZE];

    disable_irqsave(&s);
    va_start(arg, fmt);
    n = vsnprintf(buf, sizeof(buf), fmt, arg);
    va_end(arg);
    locked = iprintcanlock(&iprintlock);
    if (screenputs != NULL && iprintscreenputs)
        screenputs(buf, n);
#if 0
    uartputs(buf, n);
#endif
    if (locked)
        spin_unlock(&iprintlock);
    enable_irqsave(&s);

    return n;
}