From e14a65df735ce1b00533c73533ce91f8e591ea68 Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Mon, 6 Nov 2023 02:00:07 -0600 Subject: global constructors --- src/header/crti.s | 12 ++++++++++++ src/header/crtn.s | 7 +++++++ src/kernel/kernel.c | 2 +- src/kernel/print.c | 8 ++++---- 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 src/header/crti.s create mode 100644 src/header/crtn.s (limited to 'src') diff --git a/src/header/crti.s b/src/header/crti.s new file mode 100644 index 0000000..91e86fa --- /dev/null +++ b/src/header/crti.s @@ -0,0 +1,12 @@ +.section .init +.global _init +.type _init @function +_init: + push %ebp + movl %esp, %ebp + +.section .fini +.global _fini +_fini: + push %ebp + movl %esp, %ebp diff --git a/src/header/crtn.s b/src/header/crtn.s new file mode 100644 index 0000000..4874122 --- /dev/null +++ b/src/header/crtn.s @@ -0,0 +1,7 @@ +.section .init + popl %ebp + ret + +.section .fini + popl %ebp + ret diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 50da3c6..a47a0a7 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -17,5 +17,5 @@ void kernel_main(void) { print_set_color(PRINT_COLOR_YELLOW, PRINT_COLOR_BLACK); printf("printf\n\tint: %d\n\tstring: %s\n\tchar: %c\n\tpercent: " "%%\n\tnothing: %n", - 1287, "World! ", 't'); + 99, "World! ", 't'); } diff --git a/src/kernel/print.c b/src/kernel/print.c index 35533cd..89f6722 100644 --- a/src/kernel/print.c +++ b/src/kernel/print.c @@ -24,8 +24,8 @@ uint8_t color = PRINT_COLOR_WHITE | PRINT_COLOR_BLACK << 4; void clear_row(size_t row) { // Define empty character struct Char empty = (struct Char){ - character : ' ', - color : color, + ' ', + color, }; // For every col in row, set vmem to empty @@ -82,8 +82,8 @@ void print_char(char character) { // set video memeory to requested character buffer[col + NUM_COLS * row] = (struct Char){ - character : (uint8_t)character, - color : color, + (uint8_t)character, + color, }; // iterate col -- cgit v1.2.3