diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2010-05-18 15:55:03 -0500 |
---|---|---|
committer | Patrick Williams <iawillia@us.ibm.com> | 2010-05-18 15:55:03 -0500 |
commit | cf138201c24fdc83ee7835b65cce67e7d7a85e70 (patch) | |
tree | 16650f82ac519ff60bc9100b4e90868463bd987d /src/kernel | |
parent | 9ea98f274e18a3407ce109a331553e1c910274d9 (diff) | |
download | talos-hostboot-cf138201c24fdc83ee7835b65cce67e7d7a85e70.tar.gz talos-hostboot-cf138201c24fdc83ee7835b65cce67e7d7a85e70.zip |
Create simple console.
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/console.C | 28 | ||||
-rw-r--r-- | src/kernel/kernel.C | 4 | ||||
-rw-r--r-- | src/kernel/makefile | 4 |
3 files changed, 34 insertions, 2 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++; + } +} diff --git a/src/kernel/kernel.C b/src/kernel/kernel.C index 2ea0d2fbc..fede83f02 100644 --- a/src/kernel/kernel.C +++ b/src/kernel/kernel.C @@ -1,5 +1,9 @@ +#include <stdint.h> +#include <kernel/console.H> + int main() { + printk("Welcome to the kernel!\n"); while(1); return 0; diff --git a/src/kernel/makefile b/src/kernel/makefile index 74a6bffbc..1047de456 100644 --- a/src/kernel/makefile +++ b/src/kernel/makefile @@ -1,8 +1,8 @@ OBJDIR = ../../obj include ../../config.mk -OBJECTS += ${OBJDIR}/start.o -OBJECTS += ${OBJDIR}/kernel.o +OBJS = start.o kernel.o console.o +OBJECTS = $(addprefix ${OBJDIR}/, ${OBJS}) all: ${OBJECTS} |