summaryrefslogtreecommitdiffstats
path: root/src/kernel/console.C
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2010-05-18 15:55:03 -0500
committerPatrick Williams <iawillia@us.ibm.com>2010-05-18 15:55:03 -0500
commitcf138201c24fdc83ee7835b65cce67e7d7a85e70 (patch)
tree16650f82ac519ff60bc9100b4e90868463bd987d /src/kernel/console.C
parent9ea98f274e18a3407ce109a331553e1c910274d9 (diff)
downloadtalos-hostboot-cf138201c24fdc83ee7835b65cce67e7d7a85e70.tar.gz
talos-hostboot-cf138201c24fdc83ee7835b65cce67e7d7a85e70.zip
Create simple console.
Diffstat (limited to 'src/kernel/console.C')
-rw-r--r--src/kernel/console.C28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/kernel/console.C b/src/kernel/console.C
new file mode 100644
index 000000000..a2ad0ffe2
--- /dev/null
+++ b/src/kernel/console.C
@@ -0,0 +1,28 @@
+#include <util/singleton.H>
+#include <kernel/console.H>
+
+static char kernel_printk_buffer[Console::BUFFER_SIZE];
+
+Console::Console() : iv_pos(0), iv_buffer(kernel_printk_buffer)
+{
+ memset(iv_buffer, '\0', Console::BUFFER_SIZE);
+}
+
+int Console::putc(int c)
+{
+ if (BUFFER_SIZE > iv_pos)
+ {
+ iv_buffer[iv_pos] = c;
+ iv_pos++;
+ }
+}
+
+void printk(const char* str)
+{
+ Console& console = Singleton<Console>::instance();
+ while('\0' != *str)
+ {
+ console.putc(*str);
+ str++;
+ }
+}
OpenPOWER on IntegriCloud