diff --git a/kernel-src/arch/x86-64/e9.c b/kernel-src/arch/x86-64/e9.c new file mode 100644 index 00000000..a292a3a0 --- /dev/null +++ b/kernel-src/arch/x86-64/e9.c @@ -0,0 +1,15 @@ + + +#include + +// TODO compile time options for disabling output to port e9h + +void arch_e9_putc(char c) { + outb(0xe9, c); +} + +void arch_e9_puts(char *c) { + while (*c) { + outb(0xe9, *c++); + } +} diff --git a/kernel-src/arch/x86-64/main.c b/kernel-src/arch/x86-64/main.c index a08edd24..8f164df7 100644 --- a/kernel-src/arch/x86-64/main.c +++ b/kernel-src/arch/x86-64/main.c @@ -1,4 +1,7 @@ +#include + void kernel_entry() { + arch_e9_puts("Hello, world!\n"); asm("cli"); asm("hlt"); } diff --git a/kernel-src/include/arch/e9.h b/kernel-src/include/arch/e9.h new file mode 100644 index 00000000..d67bc789 --- /dev/null +++ b/kernel-src/include/arch/e9.h @@ -0,0 +1,7 @@ +#ifndef _E9_H +#define _E9_H + +void arch_e9_putc(char); +void arch_e9_puts(char *); + +#endif