From 9a296e404548418a9032c31d03a2d3a0234fb7e2 Mon Sep 17 00:00:00 2001 From: Karina Date: Tue, 30 Dec 2025 21:28:29 +0400 Subject: [PATCH] ref: changed ifndef -> pragma --- CMakeLists.txt | 1 + kernel/inc/arch/x86_64/gdt.h | 5 -- kernel/inc/arch/x86_64/idt.h | 4 -- kernel/inc/arch/x86_64/io.h | 5 +- kernel/inc/arch/x86_64/pic.h | 7 +-- kernel/inc/core/math.h | 2 +- kernel/inc/core/panic.h | 4 -- kernel/inc/core/rand.h | 6 +-- kernel/inc/core/scheduler.h | 4 ++ kernel/inc/core/splash.h | 6 +-- kernel/inc/core/string.h | 5 +- kernel/inc/drivers/console.h | 6 +-- kernel/inc/drivers/font.h | 6 +-- kernel/inc/drivers/keyboard.h | 6 +-- kernel/inc/drivers/serial.h | 5 +- kernel/inc/drivers/shitgui.h | 6 +-- kernel/inc/drivers/timer.h | 5 +- kernel/inc/mm/heap.h | 6 +-- kernel/inc/mm/memory.h | 6 +-- kernel/inc/mm/pmm.h | 7 +-- kernel/inc/mm/vmm.h | 6 +-- kernel/inc/shell/builtins.h | 5 +- kernel/inc/shell/dbgcmd.h | 8 ++-- kernel/inc/shell/ksh.h | 5 +- kernel/inc/types.h | 6 +-- kernel/src/kmain.c | 1 + kernel/src/shell/builtins.c | 3 +- kernel/src/shell/dbgcmd.c | 87 ++++------------------------------- kernel/src/shell/ksh.c | 8 +--- 29 files changed, 42 insertions(+), 189 deletions(-) create mode 100644 kernel/inc/core/scheduler.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 18c03bb..9edda2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,7 @@ if(QEMU_EXE) -enable-kvm -bios ${OVMF_PATH} -drive file=${IMG_FILE},format=raw + -vga std -net none -serial stdio -m 512M diff --git a/kernel/inc/arch/x86_64/gdt.h b/kernel/inc/arch/x86_64/gdt.h index 1f28a46..1da893f 100644 --- a/kernel/inc/arch/x86_64/gdt.h +++ b/kernel/inc/arch/x86_64/gdt.h @@ -2,9 +2,6 @@ // Copyright (c) 2025 0xKarinyash #pragma once -#ifndef GDT_H -#define GDT_H - #include typedef struct { @@ -41,5 +38,3 @@ typedef struct { } __attribute__((packed)) TSS; void gdt_init(); - -#endif \ No newline at end of file diff --git a/kernel/inc/arch/x86_64/idt.h b/kernel/inc/arch/x86_64/idt.h index 2f4788d..587f59c 100644 --- a/kernel/inc/arch/x86_64/idt.h +++ b/kernel/inc/arch/x86_64/idt.h @@ -1,8 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef IDT_H -#define IDT_H #pragma once #include @@ -22,5 +20,3 @@ typedef struct { } __attribute__((packed)) IDTPtr; void idt_init(); - -#endif \ No newline at end of file diff --git a/kernel/inc/arch/x86_64/io.h b/kernel/inc/arch/x86_64/io.h index 1edeeb9..ff68c7a 100644 --- a/kernel/inc/arch/x86_64/io.h +++ b/kernel/inc/arch/x86_64/io.h @@ -1,8 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef IO_H -#define IO_H +#pragma once #define MASTER_COMMAND 0x20 #define MASTER_DATA 0x21 @@ -38,5 +37,3 @@ static inline void outb_wait(unsigned short port, unsigned char val) { outb(port, val); io_wait(); } - -#endif \ No newline at end of file diff --git a/kernel/inc/arch/x86_64/pic.h b/kernel/inc/arch/x86_64/pic.h index 753e186..0b3fa3e 100644 --- a/kernel/inc/arch/x86_64/pic.h +++ b/kernel/inc/arch/x86_64/pic.h @@ -1,11 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash - -#ifndef PIC_H -#define PIC_H - +#pragma once #include u16 pic_remap(); - -#endif \ No newline at end of file diff --git a/kernel/inc/core/math.h b/kernel/inc/core/math.h index 1523531..b8c6b99 100644 --- a/kernel/inc/core/math.h +++ b/kernel/inc/core/math.h @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash - +#pragma once #include #define MAX(a, b) ({ \ diff --git a/kernel/inc/core/panic.h b/kernel/inc/core/panic.h index d9f7bba..6c66ba8 100644 --- a/kernel/inc/core/panic.h +++ b/kernel/inc/core/panic.h @@ -2,13 +2,9 @@ // Copyright (c) 2025 0xKarinyash #pragma once -#ifndef PANIC_H -#define PANIC_H #include __attribute__((noreturn)) void panic_exception(Registers *regs); __attribute__((noreturn)) void panic(const char* msg); extern const char* exception_messages[]; - -#endif \ No newline at end of file diff --git a/kernel/inc/core/rand.h b/kernel/inc/core/rand.h index 91b02b6..95844fa 100644 --- a/kernel/inc/core/rand.h +++ b/kernel/inc/core/rand.h @@ -1,11 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef RAND_H -#define RAND_H - +#pragma once #include u64 shitrand(); - -#endif \ No newline at end of file diff --git a/kernel/inc/core/scheduler.h b/kernel/inc/core/scheduler.h new file mode 100644 index 0000000..8ce17a1 --- /dev/null +++ b/kernel/inc/core/scheduler.h @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (c) 2025 0xKarinyash + +#pragma once \ No newline at end of file diff --git a/kernel/inc/core/splash.h b/kernel/inc/core/splash.h index 42bb8f4..c7f1606 100644 --- a/kernel/inc/core/splash.h +++ b/kernel/inc/core/splash.h @@ -1,8 +1,8 @@ -#ifndef SPLASH_H -#define SPLASH_H +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (c) 2025 0xKarinyash +#pragma once #include void show_splash(SG_Context *sg_ctx); -#endif \ No newline at end of file diff --git a/kernel/inc/core/string.h b/kernel/inc/core/string.h index f4b0212..b9cd97c 100644 --- a/kernel/inc/core/string.h +++ b/kernel/inc/core/string.h @@ -1,10 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef STRING_H -#define STRING_H +#pragma once #include i32 strcmp(const char* s1, const char* s2); - -#endif \ No newline at end of file diff --git a/kernel/inc/drivers/console.h b/kernel/inc/drivers/console.h index 6efaa64..5a03b36 100644 --- a/kernel/inc/drivers/console.h +++ b/kernel/inc/drivers/console.h @@ -1,9 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef CONSOLE_H -#define CONSOLE_H - +#pragma once #include void console_init(SG_Context *ctx); @@ -18,5 +16,3 @@ char console_getc(); void kprint(const char *str); void kprintf(const char *fmt, ...); void kgets(char* buff, u32 lim); - -#endif \ No newline at end of file diff --git a/kernel/inc/drivers/font.h b/kernel/inc/drivers/font.h index f5d64d7..ccc3009 100644 --- a/kernel/inc/drivers/font.h +++ b/kernel/inc/drivers/font.h @@ -1,8 +1,4 @@ -#ifndef FONT_H -#define FONT_H - +#pragma once #include extern u8 font8x16[128][16]; - -#endif \ No newline at end of file diff --git a/kernel/inc/drivers/keyboard.h b/kernel/inc/drivers/keyboard.h index a1b843f..24278bf 100644 --- a/kernel/inc/drivers/keyboard.h +++ b/kernel/inc/drivers/keyboard.h @@ -1,9 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef KEYBOARD_H -#define KEYBOARD_H - +#pragma once #include #define KB_BUFF_SIZE 256 @@ -16,5 +14,3 @@ typedef struct { extern kb_buffer kb_buf; void kb_handler(); - -#endif \ No newline at end of file diff --git a/kernel/inc/drivers/serial.h b/kernel/inc/drivers/serial.h index a43b31c..1264e75 100644 --- a/kernel/inc/drivers/serial.h +++ b/kernel/inc/drivers/serial.h @@ -1,11 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef SERIAL_H -#define SERIAL_H +#pragma once int serial_init(); void serial_writec(char chr); void serial_write(const char *str); - -#endif \ No newline at end of file diff --git a/kernel/inc/drivers/shitgui.h b/kernel/inc/drivers/shitgui.h index 7785869..1bb7a52 100644 --- a/kernel/inc/drivers/shitgui.h +++ b/kernel/inc/drivers/shitgui.h @@ -1,9 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef SHITGUI_H -#define SHITGUI_H - +#pragma once #include typedef struct { @@ -31,5 +29,3 @@ typedef struct { void sg_put_img(SG_Context *ctx, SG_Point *p, SG_Image *img); void sg_draw_rect(SG_Context *ctx, SG_Point *p, u32 w, u32 h, u32 color); void sg_draw_char_bitmap(SG_Context *ctx, SG_Point *p, char c, u32 color, SG_Font *font); - -#endif \ No newline at end of file diff --git a/kernel/inc/drivers/timer.h b/kernel/inc/drivers/timer.h index b7260a4..bf988e2 100644 --- a/kernel/inc/drivers/timer.h +++ b/kernel/inc/drivers/timer.h @@ -1,13 +1,10 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef TIMER_H -#define TIMER_H +#pragma once #include void timer_init(u32 freq); void timer_handler(); void sleep(u64 ms); u64 get_uptime(); - -#endif \ No newline at end of file diff --git a/kernel/inc/mm/heap.h b/kernel/inc/mm/heap.h index c2f15cc..8c3c0cf 100644 --- a/kernel/inc/mm/heap.h +++ b/kernel/inc/mm/heap.h @@ -1,9 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef HEAP_H -#define HEAP_H - +#pragma once #include #define KERNEL_HEAP_START 0xFFFFFFFFC0000000 @@ -24,5 +22,3 @@ void heap_init(); void* malloc(u64 size); void free(void* ptr); void* realloc(void* ptr, u64 new_size); - -#endif \ No newline at end of file diff --git a/kernel/inc/mm/memory.h b/kernel/inc/mm/memory.h index 16ec828..52ae35f 100644 --- a/kernel/inc/mm/memory.h +++ b/kernel/inc/mm/memory.h @@ -1,12 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef MEMORY_H -#define MEMORY_H - +#pragma once #include void* memset(void* ptr, int value, usize num); void* memcpy(void* dest, const void* src, u64 n); - -#endif \ No newline at end of file diff --git a/kernel/inc/mm/pmm.h b/kernel/inc/mm/pmm.h index 9311ec2..ca454bb 100644 --- a/kernel/inc/mm/pmm.h +++ b/kernel/inc/mm/pmm.h @@ -1,9 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef PMM_H -#define PMM_H - +#pragma once #include "bootinfo.h" #include @@ -22,6 +20,3 @@ u64 pmm_get_total_mem(); void pmm_init(BI_MemoryMap* mmap); void* pmm_alloc_page(); void pmm_free_page(void* addr); - - -#endif \ No newline at end of file diff --git a/kernel/inc/mm/vmm.h b/kernel/inc/mm/vmm.h index e6f0bbf..ceb3be6 100644 --- a/kernel/inc/mm/vmm.h +++ b/kernel/inc/mm/vmm.h @@ -1,9 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef VMM_H -#define VMM_H - +#pragma once #include "bootinfo.h" #include @@ -39,5 +37,3 @@ void vmm_init(Bootinfo* info); u64* vmm_map_page(u64* pml4, u64 phys, u64 virt, u64 flags); - -#endif \ No newline at end of file diff --git a/kernel/inc/shell/builtins.h b/kernel/inc/shell/builtins.h index 58d1b96..7a6975d 100644 --- a/kernel/inc/shell/builtins.h +++ b/kernel/inc/shell/builtins.h @@ -1,8 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef SHELLBUILTINS_H -#define SHELLBUILTINS_H +#pragma once void cmd_kfetch(); void cmd_meow(); @@ -12,5 +11,3 @@ void print_regs(); void cmd_sleep(); void cmd_debug(); int rectest(int a); - -#endif \ No newline at end of file diff --git a/kernel/inc/shell/dbgcmd.h b/kernel/inc/shell/dbgcmd.h index 6c07834..049ea93 100644 --- a/kernel/inc/shell/dbgcmd.h +++ b/kernel/inc/shell/dbgcmd.h @@ -1,9 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef DBGCMD_H -#define DBGCMD_H +#pragma once +#include -void debug(); - -#endif \ No newline at end of file +u64 debug(); diff --git a/kernel/inc/shell/ksh.h b/kernel/inc/shell/ksh.h index 330b991..2283499 100644 --- a/kernel/inc/shell/ksh.h +++ b/kernel/inc/shell/ksh.h @@ -1,10 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef KSH_H -#define KSH_H +#pragma once #include void ksh(); - -#endif \ No newline at end of file diff --git a/kernel/inc/types.h b/kernel/inc/types.h index 98e65cc..383ed27 100644 --- a/kernel/inc/types.h +++ b/kernel/inc/types.h @@ -1,8 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (c) 2025 0xKarinyash -#ifndef TYPES_H -#define TYPES_H +#pragma once typedef unsigned char u8; typedef unsigned short u16; @@ -56,6 +55,3 @@ typedef enum { #define true 1 #define false 0 #endif - - -#endif \ No newline at end of file diff --git a/kernel/src/kmain.c b/kernel/src/kmain.c index 0e22a9c..ec651aa 100644 --- a/kernel/src/kmain.c +++ b/kernel/src/kmain.c @@ -68,4 +68,5 @@ void kmain(Bootinfo* info) { ksh(); panic("Kernel main loop exited"); + } \ No newline at end of file diff --git a/kernel/src/shell/builtins.c b/kernel/src/shell/builtins.c index 14c458c..b230a1e 100644 --- a/kernel/src/shell/builtins.c +++ b/kernel/src/shell/builtins.c @@ -78,6 +78,7 @@ void cmd_sleep() { } void cmd_debug() { - debug(); + u64 status = debug(); + kprintf("\nDebug ended with code %d\n", status); return; } \ No newline at end of file diff --git a/kernel/src/shell/dbgcmd.c b/kernel/src/shell/dbgcmd.c index 20c20cb..9755fb9 100644 --- a/kernel/src/shell/dbgcmd.c +++ b/kernel/src/shell/dbgcmd.c @@ -3,87 +3,18 @@ // contents of this file will be changed CONSTANTLY // im just testing new stuff here +#include #include #include #include -#include - -#define VECTOR_BUFFER_SIZE 8 - -typedef struct { - i32* data; - u64 size; - u64 capacity; -} Vector; - -void vector_init(Vector* vec) { - vec->data = nullptr; - vec->size = 0; - vec->capacity = 0; -} - -u8 vector_append(Vector* vec, const i32 num) { - if (vec->size >= vec->capacity) { - u64 new_cap = (vec->capacity == 0) ? VECTOR_BUFFER_SIZE : vec->capacity * 2; - - i32* new_data = realloc(vec->data, new_cap * sizeof(i32)); - if (!new_data) return 2; // Out of memory - - vec->data = new_data; - vec->capacity = new_cap; - } - vec->data[vec->size] = num; - vec->size++; +u64 debug() { + kprintf("Float test\n"); + kprintf("Trying 3.14 + 1.44 in 3 seconds..\n"); + sleep(3000); + volatile float a = 3.14; + volatile float b = 1.44; + volatile float c = a + b; + kprintf("%d", (i32)c); return 0; -} - -void vector_reset(Vector* vec) { - vec->size = 0; -} - -u8 vector_reserve(Vector* vec, u64 new_cap) { - if (new_cap <= vec->capacity) return 0; - i32* new_data = realloc(vec->data, new_cap * sizeof(i32)); - if (!new_data) return 2; - - vec->data = new_data; - vec->capacity = new_cap; - - return 0; -} - -void vector_free(Vector* vec) { - free(vec->data); - vec->data = nullptr; - vec->size = vec->capacity = 0; -} - -void render_list(Vector* numbers) { - kprintf("\nNumbers [%d/%d]: [", numbers->size, numbers->capacity); - if (numbers->size == 0) kprintf("]"); - for (u64 i = 0; i < numbers->size; i++) { - kprintf("%d", numbers->data[i]); - if (i + 1 >= numbers->size) { - kprintf("]"); - break; - } - kprintf(", "); - } -} - -void debug() { - Vector nums; - vector_init(&nums); - kprintf("Heap test\n"); - kprintf("press any key to add 1 number press 'q' to exit\n"); - char c = 'd'; - u64 i = 0; - while (c != 'q') { - render_list(&nums); - vector_append(&nums, i); - i++; - c = console_getc(); - } - vector_free(&nums); } \ No newline at end of file diff --git a/kernel/src/shell/ksh.c b/kernel/src/shell/ksh.c index 565519d..d381e2c 100644 --- a/kernel/src/shell/ksh.c +++ b/kernel/src/shell/ksh.c @@ -33,7 +33,6 @@ typedef enum { TOKEN_PANIC_UD2, TOKEN_PANIC_PF, - TOKEN_QUIT, TOKEN_CLEAR } ksh_token; @@ -44,9 +43,6 @@ typedef struct { static const ksh_command_map token_map[] = { {"", TOKEN_EMPTY}, - {"q", TOKEN_QUIT}, - {"quit", TOKEN_QUIT}, - {"exit", TOKEN_QUIT}, {"cls", TOKEN_CLEAR}, {"clear", TOKEN_CLEAR}, @@ -85,9 +81,7 @@ void ksh() { kgets(cmdbuff, 256); switch(char2token(cmdbuff)) { case TOKEN_EMPTY: continue; - - case TOKEN_QUIT: return; // that'll cause panic lol - + case TOKEN_SLEEP: cmd_sleep(); break; case TOKEN_DEBUG: cmd_debug(); break; case TOKEN_REGS: cmd_regs(); break;