Skip to content
This repository has been archived by the owner on May 12, 2024. It is now read-only.

Commit

Permalink
Updated logging to colorful, still need to refactor logging to use ol…
Browse files Browse the repository at this point in the history
…d engine!
  • Loading branch information
KevinAlavik committed Feb 22, 2024
1 parent e1b1d94 commit 8935510
Show file tree
Hide file tree
Showing 13 changed files with 374 additions and 366 deletions.
19 changes: 12 additions & 7 deletions src/corelib/kif.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ void draw_image(char *rawData, uint64_t x, uint64_t y, int mode) {
// Extract width
while (rawData[i] != ' ') {
if (rawData[i] == '\0') {
dprintf("[KIF] Error: Invalid image data - Missing width\n");
dprintf("[\e[0;32mKIF\e[0m] Error: Invalid image data - Missing width\n");
return;
}
width = width * 10 + (rawData[i] - '0');
Expand All @@ -19,7 +19,8 @@ void draw_image(char *rawData, uint64_t x, uint64_t y, int mode) {
// Extract height
while (rawData[i] != '\n') {
if (rawData[i] == '\0') {
dprintf("[KIF] Error: Invalid image data - Missing height\n");
dprintf(
"[\e[0;32mKIF\e[0m] Error: Invalid image data - Missing height\n");
return;
}
height = height * 10 + (rawData[i] - '0');
Expand Down Expand Up @@ -50,7 +51,8 @@ void draw_image(char *rawData, uint64_t x, uint64_t y, int mode) {
// Extract red component
while (rawData[i] != ' ') {
if (rawData[i] == '\0') {
dprintf("[KIF] Error: Invalid image data - Missing red component\n");
dprintf("[\e[0;32mKIF\e[0m] Error: Invalid image data - Missing red "
"component\n");
return;
}
r = r * 10 + (rawData[i] - '0');
Expand All @@ -61,7 +63,8 @@ void draw_image(char *rawData, uint64_t x, uint64_t y, int mode) {
// Extract green component
while (rawData[i] != ' ') {
if (rawData[i] == '\0') {
dprintf("[KIF] Error: Invalid image data - Missing green component\n");
dprintf("[\e[0;32mKIF\e[0m] Error: Invalid image data - Missing green "
"component\n");
return;
}
g = g * 10 + (rawData[i] - '0');
Expand All @@ -72,7 +75,8 @@ void draw_image(char *rawData, uint64_t x, uint64_t y, int mode) {
// Extract blue component
while (rawData[i] != '\n') {
if (rawData[i] == '\0') {
dprintf("[KIF] Error: Invalid image data - Missing blue component\n");
dprintf("[\e[0;32mKIF\e[0m] Error: Invalid image data - Missing blue "
"component\n");
return;
}
b = b * 10 + (rawData[i] - '0');
Expand All @@ -85,7 +89,8 @@ void draw_image(char *rawData, uint64_t x, uint64_t y, int mode) {
put_pixel_rgb(currentX, currentY, r, g, b);
currentX++;
} else {
dprintf("[KIF] Error: Image data exceeds specified dimensions\n");
dprintf("[\e[0;32mKIF\e[0m] Error: Image data exceeds specified "
"dimensions\n");
return;
}

Expand All @@ -98,5 +103,5 @@ void draw_image(char *rawData, uint64_t x, uint64_t y, int mode) {
}
}
}
dprintf("[KIF] Success: Successfully drew the image\n");
dprintf("[\e[0;32mKIF\e[0m] Success: Successfully drew the image\n");
}
7 changes: 4 additions & 3 deletions src/filesystem/ramdisk.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
ramdisk_t *init_rd(void) {
ramdisk_t *rd = (ramdisk_t *)malloc(sizeof(ramdisk_t));
if (rd == NULL) {
dprintf("[Ramdisk] Failed to allocate memory for ramdisk_t");
dprintf("[\e[0;31mRamdisk\e[0m] Failed to allocate memory for ramdisk_t");
return NULL;
}

Expand All @@ -16,7 +16,7 @@ ramdisk_t *init_rd(void) {

struct Tar *tar = (struct Tar *)malloc(sizeof(struct Tar));
if (tar == NULL) {
dprintf("[Ramdisk] Failed to allocate memory for Tar");
dprintf("[\e[0;31mRamdisk\e[0m] Failed to allocate memory for Tar");
free(rd);
return NULL;
}
Expand All @@ -35,7 +35,8 @@ ramdisk_t *init_rd(void) {
rd->files = rd->content->fileCount;
rd->actual_size = sizeof(ramdisk_t);

dprintf("[Ramdisk] Ramdisk located at 0x%016llX is now initialized!\n",
dprintf("[\e[0;32mRamdisk\e[0m] Ramdisk located at 0x%016llX is now "
"initialized!\n",
rd->location);

return rd;
Expand Down
16 changes: 9 additions & 7 deletions src/filesystem/tar.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
#include <printf.h>

#define TAR_DEBUG(fmt, ...) \
dprintf("[TAR Debug] running func: %s(" fmt ")\n", __func__, ##__VA_ARGS__)
dprintf("[\e[0;32mTAR Debug\e[0m] running func: %s(" fmt ")\n", __func__, \
##__VA_ARGS__)

unsigned int getsize(const char *in) {
TAR_DEBUG("in=%s", in);
Expand All @@ -29,11 +30,12 @@ void extractTarData(const char *rawData, unsigned int dataSize,
struct TarHeader *header = (struct TarHeader *)(rawData + offset);

if (header->filename[0] == '\0') {
dprintf("[TAR] End of TAR archive detected\n");
dprintf("[\e[0;32mTAR\e[0m] End of TAR archive detected\n");
break;
}

dprintf("[TAR] Header found at offset 0x%016llX\n", (uint64_t)offset);
dprintf("[\e[0;32mTAR\e[0m] Header found at offset 0x%016llX\n",
(uint64_t)offset);

struct File file;
file.size = getsize(header->size);
Expand All @@ -44,17 +46,17 @@ void extractTarData(const char *rawData, unsigned int dataSize,
file.content = (char *)malloc(file.size + 1);
memcpy(file.content, rawData + offset + 512, file.size);
file.content[file.size] = '\0';
dprintf("[TAR] File \"%s\" extracted. Size: %u bytes\n", file.name,
file.size);
dprintf("[\e[0;32mTAR\e[0m] File \"%s\" extracted. Size: %u bytes\n",
file.name, file.size);
} else {
file.content = NULL;
dprintf("[TAR] Directory \"%s\" extracted\n", file.name);
dprintf("[\e[0;32mTAR\e[0m] Directory \"%s\" extracted\n", file.name);
}

struct File *temp_files =
realloc(tar->files, (tar->fileCount + 1) * sizeof(struct File));
if (temp_files == NULL) {
dprintf("[TAR] Failed to allocate memory for temp file\n");
dprintf("[\e[0;32mTAR\e[0m] Failed to allocate memory for temp file\n");
return;
}
tar->files = temp_files;
Expand Down
61 changes: 34 additions & 27 deletions src/kernel/boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,87 +32,94 @@ void init_boot(int debug_info) {
hhdm_offset = hhdm_request.response->offset;
framebuffer = framebuffer_request.response->framebuffers[0];

dprintf("[System] Initialized kmsg stream.\n");
dprintf("[\e[0;32mSystem\e[0m] Initialized kmsg stream.\n");
init_idt();
dprintf("[System] Initialized IDT (And IRQ)\n");
dprintf("[\e[0;32mSystem\e[0m] Initialized IDT (And IRQ)\n");
init_pmm();
dprintf("[System] Initialized PMM\n");
dprintf("[\e[0;32mSystem\e[0m] Initialized PMM\n");
pit_init();
dprintf("[System] Initialized PIT\n");
dprintf("[\e[0;32mSystem\e[0m] Initialized PIT\n");
init_keyboard();
dprintf("[System] Initialized Keyboard\n");
dprintf("[\e[0;32mSystem\e[0m] Initialized Keyboard\n");
register_irqs();
dprintf("[System] Registered IRQs\n");
dprintf("[\e[0;32mSystem\e[0m] Registered IRQs\n");
rd = init_rd();
dprintf("\n");
dprintf("[System] Loaded ramdisk, file count: %d\n", rd->files);
dprintf("[System] Loaded modules, file count: %d\n",
dprintf("[\e[0;32mSystem\e[0m] Loaded ramdisk, file count: %d\n", rd->files);
dprintf("[\e[0;32mSystem\e[0m] Loaded modules, file count: %d\n",
mod_request.response->module_count);

dprintf("[Screen] Width: %d, Height: %d\n", framebuffer->width,
dprintf("[\e[0;32mScreen\e[0m] Width: %d, Height: %d\n", framebuffer->width,
framebuffer->height);
dprintf("\n");
dprintf("[System] Starting display...\n");
dprintf("[\e[0;32mSystem\e[0m] Starting display...\n");

struct File *font_file = rd_get_file(rd, "ramdisk/etc/fonts/nighterm.psf");
if (font_file == NULL) {
dprintf("[System] Failed to load font! Didnt find: "
dprintf("[\e[0;32mSystem\e[0m] Failed to load font! Didnt find: "
"/etc/fonts/nighterm.psf\n");
return KERNEL_QUIT_ERROR;
}

if (font_file != NULL) {
dprintf("[System] Found font!\n");
dprintf("[System] Initializing Nighterm with font!\n");
dprintf("[\e[0;32mSystem\e[0m] Found font!\n");
dprintf("[\e[0;32mSystem\e[0m] Initializing Nighterm with font!\n");

nstatus = nighterm_initialize(font_file->content, framebuffer->address,
framebuffer->width, framebuffer->height,
framebuffer->pitch, framebuffer->bpp, NULL);
} else {
dprintf("[System] Found no font!\n");
dprintf("[System] Initializing Nighterm with built in font!\n");
dprintf("[\e[0;32mSystem\e[0m] Found no font!\n");
dprintf(
"[\e[0;32mSystem\e[0m] Initializing Nighterm with built in font!\n");

nstatus = nighterm_initialize(NULL, framebuffer->address,
framebuffer->width, framebuffer->height,
framebuffer->pitch, framebuffer->bpp, NULL);
}

if (nstatus) {
dprintf("[System] Nightem failed to initialize, got code: %s\n",
get_nighterm_return_string(nstatus));
dprintf(
"[\e[0;32mSystem\e[0m] Nightem failed to initialize, got code: %s\n",
get_nighterm_return_string(nstatus));
hcf();
} else {
dprintf("[System] Initialized Nighterm with code: %s\n",
dprintf("[\e[0;32mSystem\e[0m] Initialized Nighterm with code: %s\n",
get_nighterm_return_string(nstatus));
}

int kstatus = main(); // Launch the kernel

if (kstatus == KERNEL_QUIT_SUCCESS) {
dprintf("[Kernel Success] Kernel quit successfully, shutting down in 10 "
"seconds!\n");
dprintf(
"[\e[0;32mKernel\e[0m Success] Kernel quit successfully, shutting down "
"in 10 "
"seconds!\n");
pit_sleep(10000);
shutdown();
} else if (kstatus == KERNEL_QUIT_ERROR) {
dprintf("[Kernel Error] A kernel error occured, check kmesg for rason! "
"Rebooting...\n");
dprintf(
"[\e[0;32mKernel Error] A kernel error occured, check kmesg for rason! "
"Rebooting...\n");
reboot();
} else if (kstatus == KERNEL_QUIT_PANIC) {
panic("[Kernel Panic] Kernel quit with a critical error code, please see "
"kmsg for extra info.\n",
*cur_frame);
dprintf("[Kernel Panic] Kernel quit with a critical error code, the kernel "
"process returned with a 2 that means something went really wrong, "
"and we are shutting down your computer in 10 seconds!\n");
dprintf(
"[\e[0;32mKernel\e[0m Panic] Kernel quit with a critical error code, "
"the kernel "
"process returned with a 2 that means something went really wrong, "
"and we are shutting down your computer in 10 seconds!\n");
pit_sleep(10000);
shutdown();
} else if (kstatus == KERNEL_QUIT_HANG) {
hlt();
} else {
dprintf("[Kernel Warning] Kernel returned %d\n", kstatus);
dprintf("[\e[0;32mKernel\e[0m Warning] Kernel returned %d\n", kstatus);
}

// If we reach this point, something unexpected happened
dprintf("[Error] Unexpected behavior occurred, shutting down...\n");
dprintf("[\e[0;32mError] Unexpected behavior occurred, shutting down...\n");
shutdown();
}
4 changes: 2 additions & 2 deletions src/kernel/kernel.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ return codes)

int main() {
if (rd == NULL) {
dprintf("[Ramdisk] Failed to initialize ramdisk\n");
dprintf("[\e[0;32mRamdisk\e[0m] Failed to initialize ramdisk\n");
return 1;
}

struct File *motd = rd_get_file(rd, "ramdisk/etc/motd");

if (motd == NULL) {
dprintf("[Kernel] Failed to find motd file\n");
dprintf("[\e[0;32mKernel\e[0m] Failed to find motd file\n");
return KERNEL_QUIT_ERROR;
}

Expand Down
6 changes: 3 additions & 3 deletions src/paradox.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
#include <system/idt/idt.h>
#include <system/memory/pmm.h>

void _start(void)
{
void _start(void) {
init_boot(1);
dprintf("[System] Oopsie something broke, init_boot got exited. When it shouldnt have\n");
dprintf("[\e[0;32mSystem\e[0m] Oopsie something broke, init_boot got exited. "
"When it shouldnt have\n");
shutdown();
}
17 changes: 11 additions & 6 deletions src/system/cpu/panic.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ void panic(const char *reason, int_frame_t frame) {

struct File *img = rd_get_file(rd, "ramdisk/etc/images/bsod.kif");
if (img == NULL) {
dprintf("[System] Failed to load panic image! Didnt "
dprintf("[\e[0;32mSystem\e[0m] Failed to load panic image! Didnt "
"find: /etc/images/bsod.kif\n");
return;
}
Expand Down Expand Up @@ -48,19 +48,24 @@ void panic(const char *reason, int_frame_t frame) {
frame.rflags, frame.rip, frame.cs, frame.ss);
term.cx = 4;

dprintf("[KERNEL PANIC] rax: 0x%.16llX, rbx: 0x%.16llX, rcx: 0x%.16llX, rdx: "
dprintf("[\e[0;31mKernel Panic\e[0m] rax: 0x%.16llX, rbx: 0x%.16llX, rcx: "
"0x%.16llX, rdx: "
"0x%.16llX\n",
frame.rax, frame.rbx, frame.rcx, frame.rdx);
dprintf("[KERNEL PANIC] rsp: 0x%.16llX, rbp: 0x%.16llX, rsi: 0x%.16llX, rdi: "
dprintf("[\e[0;31mKernel Panic\e[0m] rsp: 0x%.16llX, rbp: 0x%.16llX, rsi: "
"0x%.16llX, rdi: "
"0x%.16llX\n",
frame.rsp, frame.rbp, frame.rsi, frame.rdi);
dprintf("[KERNEL PANIC] r8: 0x%.16llX, r9: 0x%.16llX, r10: 0x%.16llX, r11: "
dprintf("[\e[0;31mKernel Panic\e[0m] r8: 0x%.16llX, r9: 0x%.16llX, r10: "
"0x%.16llX, r11: "
"0x%.16llX\n",
frame.r8, frame.r9, frame.r10, frame.r11);
dprintf("[KERNEL PANIC] r12: 0x%.16llX, r13: 0x%.16llX, r14: 0x%.16llX, r15: "
dprintf("[\e[0;31mKernel Panic\e[0m] r12: 0x%.16llX, r13: 0x%.16llX, r14: "
"0x%.16llX, r15: "
"0x%.16llX\n",
frame.r12, frame.r13, frame.r14, frame.r15);
dprintf("[KERNEL PANIC] rfl: 0x%.16llX, rip: 0x%.16llX, cs: 0x%.16llX, ss: "
dprintf("[\e[0;31mKernel Panic\e[0m] rfl: 0x%.16llX, rip: 0x%.16llX, cs: "
"0x%.16llX, ss: "
"0x%.16llX\n",
frame.rflags, frame.rip, frame.cs, frame.ss);

Expand Down
Loading

0 comments on commit 8935510

Please sign in to comment.