From fbf131b5c043b27e0b1543374bb144e3e426f723 Mon Sep 17 00:00:00 2001 From: Tyler Murphy <=> Date: Sun, 16 Jul 2023 02:54:32 -0400 Subject: initial --- kernel/include/keycodes.h | 127 ++++++++++++++++++++++++++++++++++++++++++++++ kernel/include/panic.h | 6 +++ kernel/include/print.h | 23 +++++++++ 3 files changed, 156 insertions(+) create mode 100644 kernel/include/keycodes.h create mode 100644 kernel/include/panic.h create mode 100644 kernel/include/print.h (limited to 'kernel/include') diff --git a/kernel/include/keycodes.h b/kernel/include/keycodes.h new file mode 100644 index 0000000..b0a2568 --- /dev/null +++ b/kernel/include/keycodes.h @@ -0,0 +1,127 @@ +#pragma once + +#define KC_FLAG_KEY_DOWN 0x01 +#define KC_FLAG_KEY_UP 0x02 +#define KC_FLAG_ERROR 0x04 + +#define KEY_NONE 0x00 +#define KEY_UNKNOWN 0x01 + +#define KEY_ESCAPE 0x10 +#define KEY_1 0x11 +#define KEY_2 0x12 +#define KEY_3 0x13 +#define KEY_4 0x14 +#define KEY_5 0x15 +#define KEY_6 0x16 +#define KEY_7 0x17 +#define KEY_8 0x18 +#define KEY_9 0x19 +#define KEY_0 0x1A +#define KEY_MINUS 0x1B +#define KEY_EQUAL 0x1C +#define KEY_BACKSPACE 0x1D +#define KEY_L_SHIFT 0x1E +#define KEY_R_SHIFT 0x1F + +#define KEY_TAB 0x20 +#define KEY_Q 0x21 +#define KEY_W 0x22 +#define KEY_E 0x23 +#define KEY_R 0x24 +#define KEY_T 0x25 +#define KEY_Y 0x26 +#define KEY_U 0x27 +#define KEY_I 0x28 +#define KEY_O 0x29 +#define KEY_P 0x2A +#define KEY_L_BRACE 0x2B +#define KEY_R_BRACE 0x2C +#define KEY_BACKSLASH 0x2D +#define KEY_L_CTRL 0x2E +#define KEY_R_CTRL 0x2F + +#define KEY_CAPS_LOCK 0x30 +#define KEY_A 0x31 +#define KEY_S 0x32 +#define KEY_D 0x33 +#define KEY_F 0x34 +#define KEY_G 0x35 +#define KEY_H 0x36 +#define KEY_J 0x37 +#define KEY_K 0x38 +#define KEY_L 0x39 +#define KEY_SEMICOLON 0x3A +#define KEY_QUOTE 0x3B +#define KEY_ENTER 0x3C +#define KEY_MENU 0x3D +#define KEY_L_ALT 0x3E +#define KEY_R_ALT 0x3F + +#define KEY_SPACE 0x40 +#define KEY_Z 0x41 +#define KEY_X 0x42 +#define KEY_C 0x43 +#define KEY_V 0x44 +#define KEY_B 0x45 +#define KEY_N 0x46 +#define KEY_M 0x47 +#define KEY_COMMA 0x48 +#define KEY_PERIOD 0x49 +#define KEY_SLASH 0x4A +#define KEY_BACKTICK 0x4B +#define KEY_NUM_LOCK 0x4C +#define KEY_SCROLL_LOCK 0x4D +#define KEY_L_META 0x4E +#define KEY_R_META 0x4F + +#define KEY_NP_SLASH 0x50 +#define KEY_NP_7 0x51 +#define KEY_NP_8 0x52 +#define KEY_NP_9 0x53 +#define KEY_NP_ASTERISK 0x54 +#define KEY_NP_4 0x55 +#define KEY_NP_5 0x56 +#define KEY_NP_6 0x57 +#define KEY_NP_MINUS 0x58 +#define KEY_NP_1 0x59 +#define KEY_NP_2 0x5A +#define KEY_NP_3 0x5B +#define KEY_NP_PLUS 0x5C +#define KEY_NP_0 0x5D +#define KEY_NP_PERIOD 0x5E +#define KEY_NP_ENTER 0x5F + +#define KEY_PRINT_SCREEN 0x60 +#define KEY_PAUSE 0x61 +#define KEY_INSERT 0x62 +#define KEY_HOME 0x63 +#define KEY_PAGE_UP 0x64 +#define KEY_DELETE 0x65 +#define KEY_END 0x66 +#define KEY_PAGE_DOWN 0x67 +#define KEY_UP 0x68 +#define KEY_DOWN 0x69 +#define KEY_LEFT 0x6A +#define KEY_RIGHT 0x6B +// #define _ 0x6C +// #define _ 0x6D +// #define _ 0x6E +// #define _ 0x6F + +#define KEY_F1 0x70 +#define KEY_F2 0x71 +#define KEY_F3 0x72 +#define KEY_F4 0x73 +#define KEY_F5 0x74 +#define KEY_F6 0x75 +#define KEY_F7 0x76 +#define KEY_F8 0x77 +#define KEY_F9 0x78 +#define KEY_F10 0x79 +#define KEY_F11 0x7A +#define KEY_F12 0x7B +// #define _ 0x7C +// #define _ 0x7D +// #define _ 0x7E +// #define _ 0x7F diff --git a/kernel/include/panic.h b/kernel/include/panic.h new file mode 100644 index 0000000..db02a24 --- /dev/null +++ b/kernel/include/panic.h @@ -0,0 +1,6 @@ +#pragma once + +#define panic(msg, ...) _panic_impl(msg, __LINE__, __FILE__, ## __VA_ARGS__) + +__attribute__((noreturn)) +extern void _panic_impl(char* msg, int line, char* file, ...); diff --git a/kernel/include/print.h b/kernel/include/print.h new file mode 100644 index 0000000..dc7f862 --- /dev/null +++ b/kernel/include/print.h @@ -0,0 +1,23 @@ +#pragma once + +#include +#include + +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, ...); -- cgit v1.2.3-freya