printf.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
- /* $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;
- }