use standard printf routine in ../stand/printf.c
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Sun, 5 May 1991 06:29:22 +0000 (22:29 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Sun, 5 May 1991 06:29:22 +0000 (22:29 -0800)
SCCS-vsn: sys/i386/stand/prf.c 7.4

usr/src/sys/i386/stand/prf.c

index 3a47bed..5869037 100644 (file)
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)prf.c       7.3 (Berkeley) %G%
+ *     @(#)prf.c       7.4 (Berkeley) %G%
  */
 
 #include "types.h"
 
  */
 
 #include "types.h"
 
-
-/*
- * Scaled down version of C Library printf.
- * Used to print diagnostic information directly on console tty.
- *
- * One additional format: %b is supported to decode error registers.
- * Usage is:
- *     printf("reg=%b\n", regval, "<base><arg>*");
- * Where <base> is the output base expressed as a control character,
- * e.g. \10 gives octal; \20 gives hex.  Each arg is a sequence of
- * characters, the first of which gives the bit number to be inspected
- * (origin 1), and the next characters (up to a control character, i.e.
- * a character <= 32), give the name of the register.  Thus
- *     printf("reg=%b\n", 3, "\10\2BITTWO\1BITONE\n");
- * would produce output:
- *     reg=3<BITTWO,BITONE>
- */
-/*VARARGS1*/
-printf(fmt, x1)
-       char *fmt;
-       unsigned x1;
-{
-
-       prf(fmt, &x1);
-}
-
-prf(fmt, adx)
-       register char *fmt;
-       register *adx;
-{
-       register int b, c, i;
-       char *s, sep;
-
-loop:
-       while ((c = *fmt++) != '%') {
-               if(c == '\0')
-                       return;
-               putchar(c);
-       }
-again:
-       c = *fmt++;
-       switch (c) {
-
-       case 'l':
-               goto again;
-       case 'x': case 'X':
-               b = 16;
-               goto number;
-       case 'd': case 'D':
-       case 'u':               /* what a joke */
-               b = 10;
-               goto number;
-       case 'o': case 'O':
-               b = 8;
-number:
-               printn((u_long)*adx, b);
-               break;
-       case 'c':
-               b = *adx;
-               for (i = 24; i >= 0; i -= 8)
-                       if (c = (b >> i) & 0x7f)
-                               putchar(c);
-               break;
-#ifdef notyet
-       case 'b':
-               b = *adx++;
-               s = (char *)*adx;
-               printn((u_long)b, *s++);
-               if (b) {
-                       sep = '<';
-                       while (i = *s++) {
-                               if (b & (1 << (i-1))) {
-                                       putchar(sep);
-                                       sep = ',';
-                                       for (; (c = *s) > 32; s++)
-                                               putchar(c);
-                               } else
-                                       for (; *s > 32; s++)
-                                               ;
-                       }
-                       if (sep != '<')
-                               putchar('>');
-               }
-               break;
-#endif
-
-       case 's':
-               s = (char *)*adx;
-               while (c = *s++)
-                       putchar(c);
-               break;
-       }
-       adx++;
-       goto loop;
-}
-
-/*
- * Printn prints a number n in base b.
- * We don't use recursion to avoid deep kernel stacks.
- */
-printn(n, b)
-       u_long n;
-{
-       char prbuf[11];
-       register char *cp;
-
-       if (b == 10 && (int)n < 0) {
-               putchar('-');
-               n = (unsigned)(-(int)n);
-       }
-       cp = prbuf;
-       do {
-               *cp++ = "0123456789abcdef"[n%b];
-               n /= b;
-       } while (n);
-       do
-               putchar(*--cp);
-       while (cp > prbuf);
-}
-
 putchar(c)
 char c;
 {
 putchar(c)
 char c;
 {