diff options
Diffstat (limited to 'kernel/include')
| -rw-r--r-- | kernel/include/graphics.h | 11 | ||||
| -rw-r--r-- | kernel/include/libk/serial_stdio.h | 1 | ||||
| -rw-r--r-- | kernel/include/libk/stdio.h | 4 | ||||
| -rw-r--r-- | kernel/include/panic.h | 6 | ||||
| -rw-r--r-- | kernel/include/registers.h | 34 | ||||
| -rw-r--r-- | kernel/include/syscall.h | 7 | ||||
| -rw-r--r-- | kernel/include/types.h | 1 |
7 files changed, 57 insertions, 7 deletions
diff --git a/kernel/include/graphics.h b/kernel/include/graphics.h index 16805a6..6f6f432 100644 --- a/kernel/include/graphics.h +++ b/kernel/include/graphics.h @@ -10,7 +10,11 @@ struct fb_t { uint32_t height; uint8_t bpp; uint8_t type; -} __attribute__((packed, aligned(8))); + uint32_t x; + uint32_t y; + uint32_t char_col; + uint32_t bg_col; +}; typedef struct fb_t fb_t; extern volatile fb_t main_fb; @@ -23,11 +27,12 @@ extern volatile fb_t main_fb; #define WHITE 0x00ffffff #define BLACK 0x00000000 +void set_color(volatile fb_t* fb, uint32_t char_col, uint32_t bg_col); +void clear_screen(volatile fb_t fb); void fb_draw_pixel(volatile fb_t fb, int32_t x, int32_t y, uint32_t col); void fb_draw_line_low(volatile fb_t fb, int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t col); void fb_draw_line_high(volatile fb_t fb, int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t col); void fb_draw_line(volatile fb_t fb, int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t col); -void fb_draw_character(volatile fb_t fb, char c, int32_t x, int32_t y, uint32_t char_col, uint32_t bg_col); -void fb_draw_string(volatile fb_t fb, const char* str, int32_t x, int32_t y, uint32_t char_col, uint32_t bg_col); +void fb_draw_character(volatile fb_t fb, char c, int32_t x, int32_t y); #endif diff --git a/kernel/include/libk/serial_stdio.h b/kernel/include/libk/serial_stdio.h index 17317d0..5a4dda4 100644 --- a/kernel/include/libk/serial_stdio.h +++ b/kernel/include/libk/serial_stdio.h @@ -8,5 +8,6 @@ void serial_print_string(const char* s); void serial_print_int(uint64_t num); void serial_print_hex(uint64_t num); void serial_printf(const char *s, ...); +void serial_vprintf(const char *s, va_list list); #endif diff --git a/kernel/include/libk/stdio.h b/kernel/include/libk/stdio.h index fc7b8e8..64d16f1 100644 --- a/kernel/include/libk/stdio.h +++ b/kernel/include/libk/stdio.h @@ -3,13 +3,11 @@ #include <types.h> -extern uint32_t curr_x; -extern uint32_t curr_y; - void print_char(char c); void print_string(const char* s); void print_int(uint64_t num); void print_hex(uint64_t num); void printf(const char *s, ...); +void vprintf(const char *s, va_list list); #endif diff --git a/kernel/include/panic.h b/kernel/include/panic.h index 23b02f4..4949c77 100644 --- a/kernel/include/panic.h +++ b/kernel/include/panic.h @@ -1,6 +1,10 @@ #ifndef PANIC_H #define PANIC_H -__attribute__((noreturn)) void panic(void); +#include <types.h> + +extern uint64_t panic_rsp; + +__attribute__((noreturn)) void panic(const char *error, ...); #endif diff --git a/kernel/include/registers.h b/kernel/include/registers.h new file mode 100644 index 0000000..a0c0949 --- /dev/null +++ b/kernel/include/registers.h @@ -0,0 +1,34 @@ +#ifndef REGISTERS_H +#define REGISTERS_H + +#include <types.h> + +struct registers_t { + uint64_t rax; + uint64_t rbx; + uint64_t rcx; + uint64_t rdx; + uint64_t rsi; + uint64_t rdi; + uint64_t rsp; + uint64_t rbp; + uint64_t r8; + uint64_t r9; + uint64_t r10; + uint64_t r11; + uint64_t r12; + uint64_t r13; + uint64_t r14; + uint64_t r15; + uint64_t rip; + uint16_t cs; + uint16_t ds; + uint16_t ss; + uint16_t es; + uint16_t fs; + uint16_t gs; +}; +typedef struct registers_t registers_t; + + +#endif diff --git a/kernel/include/syscall.h b/kernel/include/syscall.h index 440f9e6..399e668 100644 --- a/kernel/include/syscall.h +++ b/kernel/include/syscall.h @@ -1,6 +1,13 @@ #ifndef SYSCALL_H #define SYSCALL_H +#define SYSCALL_READ 0 +#define SYSCALL_WRITE 1 + +#include <types.h> + void syscall_handler(void); +void syscall_read(void); +void syscall_write(char* buff, size_t count); #endif diff --git a/kernel/include/types.h b/kernel/include/types.h index b5f54be..8ce85c8 100644 --- a/kernel/include/types.h +++ b/kernel/include/types.h @@ -4,5 +4,6 @@ #include <stdint.h> #include <stddef.h> #include <stdbool.h> +#include <stdarg.h> #endif |
