summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/kernel.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index d65b07d..d81c8a7 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -1,4 +1,5 @@
#include "tty.h"
+#include "stdlib.h"
/* this only work for the 32-bit ix86 targets. */
#if !defined(__i386__)
@@ -8,8 +9,30 @@
#if defined(__cplusplus)
extern "C" /* Use C linkage for kernel_main. */
#endif
+
+static void test(int ok)
+{
+ tty_puts(ok ? " ok\n" : " ko\n");
+}
+
void kernel_main()
{
+ char ch0[16];
+
tty_init();
- tty_writestring("Hello, kernel World!\n");
+ tty_puts("\nHello, kernel World!\n");
+
+ memset(ch0, 'x', 4);
+ memcpy(ch0+4, ch0, 4);
+ ch0[0] = ' ';
+ ch0[7] = '\n';
+ ch0[8] = '\0';
+ tty_puts(ch0);
+
+ test(strncmp("abc", "abd", 8) < 0);
+ test(strncmp("abd", "abc", 8) > 0);
+ test(strncmp("abc", "abc", 8) == 0);
+ test(strncmp("abca", "abcb", 3) == 0);
+
+ tty_puts("done.\n");
}