summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksav013@gmail.com>2022-11-29 11:55:47 +0100
committerAleksa Vuckovic <aleksav013@gmail.com>2022-11-29 11:57:20 +0100
commitd36487d9fd2c19b54a3b97bdf3562a17184711fe (patch)
tree63c6d641925e7a78a9cb9ff89562c26b77b2bf3b /kernel/include
parent450b9160fdcdb0b770b316caf1d72ab893bc7aa5 (diff)
kernel panic
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/graphics.h11
-rw-r--r--kernel/include/libk/serial_stdio.h1
-rw-r--r--kernel/include/libk/stdio.h4
-rw-r--r--kernel/include/panic.h6
-rw-r--r--kernel/include/registers.h34
-rw-r--r--kernel/include/syscall.h7
-rw-r--r--kernel/include/types.h1
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