BSD 4_3_Net_2 release
[unix-history] / usr / src / sys / i386 / stand / prf.c
index 0084579..b513f6c 100644 (file)
  * This code is derived from software contributed to Berkeley by
  * William Jolitz.
  *
  * This code is derived from software contributed to Berkeley by
  * William Jolitz.
  *
- * %sccs.include.noredist.c%
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
  *
- *     @(#)prf.c       7.1 (Berkeley) %G%
- */
-
-#include <sys/types.h>
-
-/*
- * Scaled down version of C Library printf.
- * Used to print diagnostic information directly on console tty.
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  *
  *
- * 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>
+ *     @(#)prf.c       7.4 (Berkeley) 5/4/91
  */
  */
-/*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++;
-       /*
-        * THIS CODE IS BYTE-ORDER DEPENDENT IN HANDLING %c
-        * AND IGNORES SHORT/LONG DISTINCTIONS.
-        */
-       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;
-#ifndef 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);
-}
-
-#define lf     10      
-#define cr     13      
+#include "types.h"
 
 putchar(c)
 char c;
 {
 
 putchar(c)
 char c;
 {
-        if (c == lf)
-{
-               sput(cr);
-wait(60000);
-}
+        if (c == '\n')
+               sput('\r');
        sput(c);
        return(0);
 }
        sput(c);
        return(0);
 }