ref: changed ifndef -> pragma
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
// Copyright (c) 2025 0xKarinyash
|
||||
|
||||
#pragma once
|
||||
#ifndef GDT_H
|
||||
#define GDT_H
|
||||
|
||||
#include <types.h>
|
||||
|
||||
typedef struct {
|
||||
@@ -41,5 +38,3 @@ typedef struct {
|
||||
} __attribute__((packed)) TSS;
|
||||
|
||||
void gdt_init();
|
||||
|
||||
#endif
|
||||
@@ -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 <types.h>
|
||||
|
||||
@@ -22,5 +20,3 @@ typedef struct {
|
||||
} __attribute__((packed)) IDTPtr;
|
||||
|
||||
void idt_init();
|
||||
|
||||
#endif
|
||||
@@ -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
|
||||
@@ -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 <types.h>
|
||||
|
||||
u16 pic_remap();
|
||||
|
||||
#endif
|
||||
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Copyright (c) 2025 0xKarinyash
|
||||
|
||||
#pragma once
|
||||
#include <types.h>
|
||||
|
||||
#define MAX(a, b) ({ \
|
||||
|
||||
@@ -2,13 +2,9 @@
|
||||
// Copyright (c) 2025 0xKarinyash
|
||||
|
||||
#pragma once
|
||||
#ifndef PANIC_H
|
||||
#define PANIC_H
|
||||
#include <types.h>
|
||||
|
||||
__attribute__((noreturn)) void panic_exception(Registers *regs);
|
||||
__attribute__((noreturn)) void panic(const char* msg);
|
||||
|
||||
extern const char* exception_messages[];
|
||||
|
||||
#endif
|
||||
@@ -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 <types.h>
|
||||
|
||||
u64 shitrand();
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,4 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Copyright (c) 2025 0xKarinyash
|
||||
|
||||
#pragma once
|
||||
@@ -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 <drivers/shitgui.h>
|
||||
|
||||
void show_splash(SG_Context *sg_ctx);
|
||||
|
||||
#endif
|
||||
@@ -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 <types.h>
|
||||
|
||||
i32 strcmp(const char* s1, const char* s2);
|
||||
|
||||
#endif
|
||||
@@ -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 <drivers/shitgui.h>
|
||||
|
||||
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
|
||||
@@ -1,8 +1,4 @@
|
||||
#ifndef FONT_H
|
||||
#define FONT_H
|
||||
|
||||
#pragma once
|
||||
#include <types.h>
|
||||
|
||||
extern u8 font8x16[128][16];
|
||||
|
||||
#endif
|
||||
@@ -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 <types.h>
|
||||
|
||||
#define KB_BUFF_SIZE 256
|
||||
@@ -16,5 +14,3 @@ typedef struct {
|
||||
extern kb_buffer kb_buf;
|
||||
|
||||
void kb_handler();
|
||||
|
||||
#endif
|
||||
@@ -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
|
||||
@@ -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 <types.h>
|
||||
|
||||
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
|
||||
@@ -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 <types.h>
|
||||
|
||||
void timer_init(u32 freq);
|
||||
void timer_handler();
|
||||
void sleep(u64 ms);
|
||||
u64 get_uptime();
|
||||
|
||||
#endif
|
||||
@@ -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 <types.h>
|
||||
|
||||
#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
|
||||
@@ -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 <types.h>
|
||||
|
||||
void* memset(void* ptr, int value, usize num);
|
||||
void* memcpy(void* dest, const void* src, u64 n);
|
||||
|
||||
#endif
|
||||
+1
-6
@@ -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 <types.h>
|
||||
|
||||
@@ -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
|
||||
+1
-5
@@ -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 <types.h>
|
||||
|
||||
@@ -39,5 +37,3 @@
|
||||
|
||||
void vmm_init(Bootinfo* info);
|
||||
u64* vmm_map_page(u64* pml4, u64 phys, u64 virt, u64 flags);
|
||||
|
||||
#endif
|
||||
@@ -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
|
||||
@@ -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 <types.h>
|
||||
|
||||
void debug();
|
||||
|
||||
#endif
|
||||
u64 debug();
|
||||
|
||||
@@ -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 <drivers/shitgui.h>
|
||||
|
||||
void ksh();
|
||||
|
||||
#endif
|
||||
+1
-5
@@ -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
|
||||
@@ -68,4 +68,5 @@ void kmain(Bootinfo* info) {
|
||||
ksh();
|
||||
|
||||
panic("Kernel main loop exited");
|
||||
|
||||
}
|
||||
@@ -78,6 +78,7 @@ void cmd_sleep() {
|
||||
}
|
||||
|
||||
void cmd_debug() {
|
||||
debug();
|
||||
u64 status = debug();
|
||||
kprintf("\nDebug ended with code %d\n", status);
|
||||
return;
|
||||
}
|
||||
@@ -3,87 +3,18 @@
|
||||
// contents of this file will be changed CONSTANTLY
|
||||
// im just testing new stuff here
|
||||
|
||||
#include <drivers/timer.h>
|
||||
#include <drivers/console.h>
|
||||
#include <types.h>
|
||||
#include <shell/dbgcmd.h>
|
||||
#include <mm/heap.h>
|
||||
|
||||
#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);
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user