summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/console.C20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/kernel/console.C b/src/kernel/console.C
index 06cd98e2b..2c33645fe 100644
--- a/src/kernel/console.C
+++ b/src/kernel/console.C
@@ -31,6 +31,20 @@ class ConsoleDisplay
static void display(Console& c, _T value) {};
};
+template <ConsoleTraits::trait _S>
+class ConsoleDisplay<char*, _S>
+{
+ public:
+ static void display(Console&c, char* value)
+ {
+ while(*value != '\0')
+ {
+ c.putc(*value);
+ value++;
+ }
+ }
+};
+
template <>
class ConsoleDisplay<char, ConsoleTraits::NONE>
{
@@ -112,6 +126,7 @@ void printk(const char* str, ...)
if (format)
{
ConsoleDisplay<char>::display(console, '%');
+ format = false;
}
else
{
@@ -138,6 +153,11 @@ void printk(const char* str, ...)
size++;
break;
}
+ case 'z': // size_t or ssize_t
+ {
+ size = 4;
+ break;
+ }
case 'd': // decimal
{
format = false;
OpenPOWER on IntegriCloud