Add putbuf().
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 20 Sep 2004 04:27:43 +0000 (04:27 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 20 Sep 2004 04:27:43 +0000 (04:27 +0000)
src/lib/kernel/console.c
src/lib/stdio.h

index 803b46b393dca80c9773e165bdcf8715c2a67de5..149f29c7eb46f07e12c6af8744d8669e25b0340c 100644 (file)
@@ -59,6 +59,20 @@ puts (const char *s)
   return 0;
 }
 
+/* Writes the N characters in BUFFER to the console. */
+void
+putbuf (const char *buffer, size_t n) 
+{
+  if (!intr_context ())
+    lock_acquire (&console_lock);
+
+  while (n-- > 0)
+    putchar_unlocked (*buffer++);
+
+  if (!intr_context ())
+    lock_release (&console_lock);
+}
+
 /* Writes C to the vga display and serial port. */
 int
 putchar (int c) 
index b351dd16a5cf09cf7451dd56b8498a5c9c34aaf8..cf6c49e3ef7841360f6856b2ecb009c88d7bb1e0 100644 (file)
@@ -19,7 +19,10 @@ int putchar (int);
 int puts (const char *);
 
 /* Nonstandard functions. */
-#ifndef KERNEL
+#ifdef KERNEL
+void putbuf (const char *, size_t);
+#endif
+#ifdef USER
 int hprintf (int, const char *, ...) PRINTF_FORMAT (2, 3);
 int vhprintf (int, const char *, va_list) PRINTF_FORMAT (2, 0);
 #endif