blob: 33428e9f621f19cc7c4f12fdeca5e5e71b5e3743 [file] [log] [blame]
/* $Id: printf.c,v 1.3 1997/03/18 18:00:00 jj Exp $
* printf.c: Internal prom library printf facility.
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
* Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
*/
/* This routine is internal to the prom library, no one else should know
* about or use it! It's simple and smelly anyway....
*/
#include <linux/kernel.h>
#include <asm/openprom.h>
#include <asm/oplib.h>
static char ppbuf[1024];
extern void prom_puts (char *, int);
void
prom_printf(char *fmt, ...)
{
va_list args;
char ch, *bptr, *last;
int i;
va_start(args, fmt);
i = vsprintf(ppbuf, fmt, args);
bptr = ppbuf;
last = ppbuf;
while((ch = *(bptr++)) != 0) {
if(ch == '\n') {
if (last < bptr - 1)
prom_puts (last, bptr - 1 - last);
prom_putchar('\r');
last = bptr - 1;
}
}
if (last < bptr - 1)
prom_puts (last, bptr - 1 - last);
va_end(args);
return;
}