diff options
author | dzwdz | 2022-07-16 13:33:00 +0200 |
---|---|---|
committer | dzwdz | 2022-07-16 13:33:00 +0200 |
commit | 912d2e3c7eb1baa71dda2c0a28aa5809eaa96f27 (patch) | |
tree | 4e27f3538466d5fd63a311d50916039a7a15a485 /src/kernel/arch/i386/tty | |
parent | 1eeb66af44ab335888410d716d604e569f20866e (diff) |
amd64: barely boot into kernel code
Diffstat (limited to 'src/kernel/arch/i386/tty')
-rw-r--r-- | src/kernel/arch/i386/tty/tty.c | 26 | ||||
-rw-r--r-- | src/kernel/arch/i386/tty/tty.h | 7 | ||||
-rw-r--r-- | src/kernel/arch/i386/tty/vga.c | 33 |
3 files changed, 0 insertions, 66 deletions
diff --git a/src/kernel/arch/i386/tty/tty.c b/src/kernel/arch/i386/tty/tty.c deleted file mode 100644 index 9451059..0000000 --- a/src/kernel/arch/i386/tty/tty.c +++ /dev/null @@ -1,26 +0,0 @@ -#include <kernel/arch/generic.h> -#include <kernel/arch/i386/driver/serial.h> -#include <kernel/arch/i386/tty/tty.h> -#include <shared/printf.h> - -void tty_init(void) { - vga_clear(); - serial_preinit(); - - vga_write("\x03 ", 2); // cp437 heart - serial_write("<3 ", 3); -} - -static void backend(void __attribute__((unused)) *arg, const char *buf, size_t len) { - vga_write(buf, len); - serial_write(buf, len); -} - -int kprintf(const char *fmt, ...) { - int ret; - va_list argp; - va_start(argp, fmt); - ret = __printf_internal(fmt, argp, backend, NULL); - va_end(argp); - return ret; -} diff --git a/src/kernel/arch/i386/tty/tty.h b/src/kernel/arch/i386/tty/tty.h deleted file mode 100644 index b96003d..0000000 --- a/src/kernel/arch/i386/tty/tty.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once -#include <stddef.h> - -void vga_write(const char *buf, size_t len); -void vga_clear(void); - -void tty_init(void); diff --git a/src/kernel/arch/i386/tty/vga.c b/src/kernel/arch/i386/tty/vga.c deleted file mode 100644 index 9efd326..0000000 --- a/src/kernel/arch/i386/tty/vga.c +++ /dev/null @@ -1,33 +0,0 @@ -#include <kernel/arch/i386/tty/tty.h> - -struct vga_cell { - unsigned char c; - unsigned char style; -} __attribute__((__packed__)); - -static const size_t vga_len = 80 * 25; -static struct vga_cell *vga = (void*) 0xB8000; -static size_t vga_pos = 0; - -static void vga_scroll(void) { - for (size_t i = 0; i < vga_len - 80; i++) - vga[i] = vga[i + 80]; - vga_pos -= 80; -} - -static void vga_putchar(char c) { - if (vga_pos >= vga_len - 80) - vga_scroll(); - vga[vga_pos++].c = c; -} - -void vga_write(const char *buf, size_t len) { - for (size_t i = 0; i < len; i++) - vga_putchar(buf[i]); -} - -void vga_clear(void) { - for (size_t i = 0; i < vga_len; i++) - vga[i].c = ' '; - vga_pos = 0; -} |