diff options
Diffstat (limited to '')
-rw-r--r-- | kernel/include/arch/i686/acpi.h (renamed from kernel/src/acpi/acpi.h) | 2 | ||||
-rw-r--r-- | kernel/include/arch/i686/asm.h | 13 | ||||
-rw-r--r-- | kernel/include/arch/i686/drivers/ps2ctrl.h (renamed from kernel/src/drivers/ps2ctrl.h) | 0 | ||||
-rw-r--r-- | kernel/include/arch/i686/drivers/rtc.h | 7 | ||||
-rw-r--r-- | kernel/include/arch/i686/idt.h | 6 | ||||
-rw-r--r-- | kernel/include/arch/i686/mboot.h (renamed from kernel/src/boot/tag.h) | 5 | ||||
-rw-r--r-- | kernel/include/arch/i686/memory.h (renamed from kernel/src/memory/memory.h) | 0 | ||||
-rw-r--r-- | kernel/include/arch/i686/pic.h (renamed from kernel/src/interrupt/pic.h) | 2 | ||||
-rw-r--r-- | kernel/include/drivers/ps2kb.h (renamed from kernel/src/drivers/ps2kb.h) | 0 | ||||
-rw-r--r-- | kernel/include/drivers/ps2mouse.h (renamed from kernel/src/drivers/ps2mouse.h) | 0 | ||||
-rw-r--r-- | kernel/include/drivers/vga.h | 32 | ||||
-rw-r--r-- | kernel/include/memory.h | 6 | ||||
-rw-r--r-- | kernel/include/print.h | 14 | ||||
-rw-r--r-- | kernel/include/sys.h | 10 | ||||
-rw-r--r-- | kernel/include/term.h (renamed from kernel/src/tty/term.h) | 13 | ||||
-rw-r--r-- | kernel/include/time.h | 23 |
16 files changed, 102 insertions, 31 deletions
diff --git a/kernel/src/acpi/acpi.h b/kernel/include/arch/i686/acpi.h index 889497e..bb35010 100644 --- a/kernel/src/acpi/acpi.h +++ b/kernel/include/arch/i686/acpi.h @@ -102,5 +102,5 @@ struct FixedACPIDescriptionTable { struct GenericAddressStructure x_gpe1_block; }; -void acpi_init(void); +void acpi_init(void *rsdp); void acpi_poweroff(void); diff --git a/kernel/include/arch/i686/asm.h b/kernel/include/arch/i686/asm.h new file mode 100644 index 0000000..0e2d9db --- /dev/null +++ b/kernel/include/arch/i686/asm.h @@ -0,0 +1,13 @@ +#include <stdint.h> + +extern uint8_t inb(uint16_t port); +extern void outb(uint16_t port, uint8_t val); +extern uint16_t inw(uint16_t port); +extern void outw(uint16_t port, uint16_t val); +extern uint32_t inl(uint16_t port); +extern void outl(uint16_t port, uint32_t val); +extern void io_wait(void); +extern void int_enable(void); +extern void int_disable(void); +extern void int_wait(void); +extern void halt(void); diff --git a/kernel/src/drivers/ps2ctrl.h b/kernel/include/arch/i686/drivers/ps2ctrl.h index a674c57..a674c57 100644 --- a/kernel/src/drivers/ps2ctrl.h +++ b/kernel/include/arch/i686/drivers/ps2ctrl.h diff --git a/kernel/include/arch/i686/drivers/rtc.h b/kernel/include/arch/i686/drivers/rtc.h new file mode 100644 index 0000000..29dbf8f --- /dev/null +++ b/kernel/include/arch/i686/drivers/rtc.h @@ -0,0 +1,7 @@ +#pragma once + +#include <time.h> + +extern void rtc_update(void); +extern struct Time rtc_utctime(void); +extern struct Time rtc_localtime(enum Timezone tz); diff --git a/kernel/include/arch/i686/idt.h b/kernel/include/arch/i686/idt.h new file mode 100644 index 0000000..8dcee02 --- /dev/null +++ b/kernel/include/arch/i686/idt.h @@ -0,0 +1,6 @@ +#pragma once + +#define IDT_SIZE 256 +#define IDT_INTERRUPTS 256 + +void idt_init(void); diff --git a/kernel/src/boot/tag.h b/kernel/include/arch/i686/mboot.h index a81e443..394071f 100644 --- a/kernel/src/boot/tag.h +++ b/kernel/include/arch/i686/mboot.h @@ -2,9 +2,8 @@ #include <stdbool.h> #include <stdint.h> - -#include "acpi/acpi.h" -#include "memory/memory.h" +#include <arch/i686/mboot.h> +#include <arch/i686/memory.h> #define CMDLINE_MAX 32 diff --git a/kernel/src/memory/memory.h b/kernel/include/arch/i686/memory.h index 5d99025..5d99025 100644 --- a/kernel/src/memory/memory.h +++ b/kernel/include/arch/i686/memory.h diff --git a/kernel/src/interrupt/pic.h b/kernel/include/arch/i686/pic.h index a87420d..593a33a 100644 --- a/kernel/src/interrupt/pic.h +++ b/kernel/include/arch/i686/pic.h @@ -4,7 +4,7 @@ #define PIC_REMAP_OFFSET 0x20 -void pic_remap(uint8_t offset); +void pic_remap(void); void pic_mask(int irq); void pic_unmask(int irq); void pic_disable(void); diff --git a/kernel/src/drivers/ps2kb.h b/kernel/include/drivers/ps2kb.h index 1aaefb2..1aaefb2 100644 --- a/kernel/src/drivers/ps2kb.h +++ b/kernel/include/drivers/ps2kb.h diff --git a/kernel/src/drivers/ps2mouse.h b/kernel/include/drivers/ps2mouse.h index 9cd4818..9cd4818 100644 --- a/kernel/src/drivers/ps2mouse.h +++ b/kernel/include/drivers/ps2mouse.h diff --git a/kernel/include/drivers/vga.h b/kernel/include/drivers/vga.h new file mode 100644 index 0000000..68e8690 --- /dev/null +++ b/kernel/include/drivers/vga.h @@ -0,0 +1,32 @@ +#pragma once + +#include <stdbool.h> +#include <stdint.h> +enum vga_color { + VGA_BLACK = 0, + VGA_BLUE = 1, + VGA_GREEN = 2, + VGA_CYAN = 3, + VGA_RED = 4, + VGA_MAGENTA = 5, + VGA_BROWN = 6, + VGA_LIGHT_GREY = 7, + VGA_DARK_GREY = 8, + VGA_LIGHT_BLUE = 9, + VGA_LIGHT_GREEN = 10, + VGA_LIGHT_CYAN = 11, + VGA_LIGHT_RED = 12, + VGA_LIGHT_MAGENTA = 13, + VGA_LIGHT_BROWN = 14, + VGA_WHITE = 15, +}; + +#define VGA_TEXT_W 80 +#define VGA_TEXT_H 25 + +void vgatext_write_char(char c, enum vga_color color, uint8_t x, uint8_t y); +void vgatext_write_data(uint16_t data, uint16_t index); +void vgatext_write_buf(const uint16_t *buffer); +void vgatext_cur_mov(uint8_t x, uint8_t y); +void vgatext_cur_resize(uint8_t start, uint8_t end); +void vgatext_cur_visible(bool visible); diff --git a/kernel/include/memory.h b/kernel/include/memory.h new file mode 100644 index 0000000..07a55c0 --- /dev/null +++ b/kernel/include/memory.h @@ -0,0 +1,6 @@ +#pragma once + +extern int memory_lock(void); +extern int memory_unlock(void); +extern void *memory_alloc_page(int); +extern int memory_free_page(void* ,int); diff --git a/kernel/include/print.h b/kernel/include/print.h index dc7f862..7dbd298 100644 --- a/kernel/include/print.h +++ b/kernel/include/print.h @@ -7,17 +7,3 @@ extern void putchar(int c); extern void puts(const char* s); extern void printk(const char *restrict format, ...); extern void vprintk(const char *restrict format, va_list ap); - -#ifdef KERNEL_LOG -#define debugk(msg, ...) _debugk_impl(msg, ## __VA_ARGS__) -#define succek(msg, ...) _succek_impl(msg, ## __VA_ARGS__) -#define errork(msg, ...) _errork_impl(msg, ## __VA_ARGS__) -#else -#define debugk(msg, ...) -#define succek(msg, ...) -#define errork(msg, ...) -#endif - -extern void _debugk_impl(char* msg, ...); -extern void _succek_impl(char* msg, ...); -extern void _errork_impl(char* msg, ...); diff --git a/kernel/include/sys.h b/kernel/include/sys.h new file mode 100644 index 0000000..003f85c --- /dev/null +++ b/kernel/include/sys.h @@ -0,0 +1,10 @@ +#pragma once + +extern void arch_init(void *boot_info); +extern void arch_update(void); +extern void arch_halt(void); +extern void arch_wait_io(void); +extern void arch_wait_int(void); +extern void arch_disable_int(void); +extern void arch_enable_int(void); +extern void arch_poweroff(void); diff --git a/kernel/src/tty/term.h b/kernel/include/term.h index ceda255..8a8f1ef 100644 --- a/kernel/src/tty/term.h +++ b/kernel/include/term.h @@ -2,18 +2,15 @@ #include <stdint.h> #include <stddef.h> +#include <drivers/vga.h> -#include "color.h" - -#define TERM_W 80 -#define TERM_H 25 +#define TERM_W VGA_TEXT_W +#define TERM_H VGA_TEXT_H void term_init(void); - void term_reset(void); -void term_setfg(enum VGAColor color); -void term_setbg(enum VGAColor color); - +void term_setfg(enum vga_color color); +void term_setbg(enum vga_color color); void term_clear(void); void term_scroll(int lines); void term_setpos(uint8_t x, uint8_t y); diff --git a/kernel/include/time.h b/kernel/include/time.h index 783d96f..2e86a69 100644 --- a/kernel/include/time.h +++ b/kernel/include/time.h @@ -16,10 +16,25 @@ struct Time { int leap; /// If year is a leap year (True == 1) }; -extern void rtc_update(void); -extern void rtc_set_timezone(int offset); -extern struct Time *rtc_utctime(void); -extern struct Time *rtc_localtime(void); +enum Timezone { + UTC = 0, + EST = -4 +}; + +/** + * Sets the current timezone + */ +extern void set_timezone(enum Timezone tz); + +/** + * Returns current time in UTC + */ +extern struct Time get_utctime(void); + +/** + * Returns current time from current Timezone + */ +extern struct Time get_localtime(void); /** * Converts the time into a string format |