summaryrefslogtreecommitdiffstats
path: root/src/kernel/console.C
blob: a2ad0ffe29fd09cc60c1e42b21d4b687680a2cb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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