aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-01-03 08:16:46 -0500
committerRaghuram Subramani <raghus2247@gmail.com>2025-01-03 08:16:46 -0500
commitcd10fa5a9a84d445bea5bc4bbf903aac1df65053 (patch)
tree480184c8212b1b381fc95aeb1b8d6c93a8445201
parent2846b53653736b2df2a81935bc68c6db2c69408a (diff)
misc: Refactor
-rw-r--r--env.sh3
-rw-r--r--kernel/CMakeLists.txt5
-rw-r--r--kernel/boot/gdt/gdt.c6
3 files changed, 8 insertions, 6 deletions
diff --git a/env.sh b/env.sh
index 9993d92..ee9dd83 100644
--- a/env.sh
+++ b/env.sh
@@ -27,8 +27,9 @@ alias b="mkdir -p $dir/build && cd $dir/build"
CMAKE_FLAGS="-G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=true"
alias cm="cmake $CMAKE_FLAGS"
+
alias m="ninja"
alias mc="ninja clean-custom"
-alias mr="ninja run"
alias mi="ninja iso"
+alias mr="ninja run"
alias mg="ninja run-gdb"
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index 9c9cfcd..0037115 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.21)
project(kernel C ASM)
-set(KERNEL_SRC
+set(SRC
boot/init/boot.s
boot/gdt/gdt.c
boot/gdt/gdt.s
@@ -19,7 +19,7 @@ set(KERNEL_SRC
libk/printf.c
)
-add_executable(kernel ${KERNEL_SRC})
+add_executable(kernel ${SRC})
target_include_directories(kernel PRIVATE include)
set(C_COMPILE_OPTIONS
@@ -71,6 +71,7 @@ get_target_property(CRTN_OUT crtn BINARY_DIR)
set(CRTI_O "${CRTI_OUT}/CMakeFiles/crti.dir/${CRTI_SRC}.o")
set(CRTN_O "${CRTN_OUT}/CMakeFiles/crtn.dir/${CRTN_SRC}.o")
+# FIXME: This isn't a good way of setting the link order.
set(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_COMPILER} <CMAKE_C_LINK_FLAGS> <FLAGS> <LINK_FLAGS> \
${CRTI_O} \
${CRTBEGIN_O} \
diff --git a/kernel/boot/gdt/gdt.c b/kernel/boot/gdt/gdt.c
index 4644b3d..fcf71b3 100644
--- a/kernel/boot/gdt/gdt.c
+++ b/kernel/boot/gdt/gdt.c
@@ -33,16 +33,16 @@ GDT_entry GDT[] = {
GDT_ENTRY(0, 0xfffff, KERNEL_DATA_SEGMENT_ACCESS_FLAGS, FLAGS),
/* User Mode Code Segment */
- GDT_ENTRY(0, 0xfffff, USER_CODE_SEGMENT_ACCESS_FLAGS, FLAGS),
+ // GDT_ENTRY(0, 0xfffff, USER_CODE_SEGMENT_ACCESS_FLAGS, FLAGS),
/* User Mode Data Segment */
- GDT_ENTRY(0, 0xfffff, USER_DATA_SEGMENT_ACCESS_FLAGS, FLAGS)
+ // GDT_ENTRY(0, 0xfffff, USER_DATA_SEGMENT_ACCESS_FLAGS, FLAGS)
/* TODO: TSS? */
/* TODO: LDT? */
};
-GDT_descriptor g_GDT_descriptor = { sizeof(GDT_entry) * 5 - 1, &GDT[0] };
+GDT_descriptor g_GDT_descriptor = { sizeof(GDT) - 1, &GDT[0] };
void
GDT_load(void)