printf.c
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* $Id: printf.c,v 1.3 1997/03/18 18:00:00 jj Exp $
  2.  * printf.c:  Internal prom library printf facility.
  3.  *
  4.  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  5.  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  6.  */
  7. /* This routine is internal to the prom library, no one else should know
  8.  * about or use it!  It's simple and smelly anyway....
  9.  */
  10. #include <linux/kernel.h>
  11. #include <asm/openprom.h>
  12. #include <asm/oplib.h>
  13. static char ppbuf[1024];
  14. extern void prom_puts (char *, int);
  15. void
  16. prom_printf(char *fmt, ...)
  17. {
  18. va_list args;
  19. char ch, *bptr, *last;
  20. int i;
  21. va_start(args, fmt);
  22. i = vsprintf(ppbuf, fmt, args);
  23. bptr = ppbuf;
  24. last = ppbuf;
  25. while((ch = *(bptr++)) != 0) {
  26. if(ch == 'n') {
  27. if (last < bptr - 1)
  28. prom_puts (last, bptr - 1 - last);
  29. prom_putchar('r');
  30. last = bptr - 1;
  31. }
  32. }
  33. if (last < bptr - 1)
  34. prom_puts (last, bptr - 1 - last);
  35. va_end(args);
  36. return;
  37. }