feat: setup gdt and idt and handle basic ISRs

This commit is contained in:
2023-10-01 19:49:56 +02:00
parent f79e6e10ac
commit 295c11e107
11 changed files with 511 additions and 3 deletions

View File

@@ -75,12 +75,26 @@ if (NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/${CMAKE_SYSTEM_PRO
message(FATAL_ERROR "Unknown architecture ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/${CMAKE_SYSTEM_PROCESSOR}")
endif ()
file(GLOB PLATFORM_SPECIFIC_SOURCES src/platform/${CMAKE_SYSTEM_PROCESSOR}/*.c)
file(GLOB PLATFORM_SPECIFIC_ASM_SOURCES src/platform/${CMAKE_SYSTEM_PROCESSOR}/*.asm)
file(GLOB_RECURSE PLATFORM_SPECIFIC_SOURCES src/platform/${CMAKE_SYSTEM_PROCESSOR}/*.c)
file(GLOB_RECURSE PLATFORM_SPECIFIC_ASM_SOURCES src/platform/${CMAKE_SYSTEM_PROCESSOR}/*.asm)
file(GLOB CRTI src/platform/generic/crt/crti.c)
file(GLOB CRTN src/platform/generic/crt/crtn.c)
file(GLOB_RECURSE PYTHON_GENERATORS src/**/*.generator.py)
foreach (GENERATOR IN LISTS PYTHON_GENERATORS)
get_filename_component(GENERATED_BARE ${GENERATOR} NAME_WE)
add_custom_command(
COMMAND python3 ${GENERATOR}
OUTPUT ${GENERATED_BARE}.c
COMMENT "Generates ${GENERATED_BARE}.c"
)
list(APPEND GENERATED_SOURCES ${GENERATED_BARE}.c)
endforeach ()
# Define aggregate sources
set(KERNEL_SOURCE_FILES
${KERNEL_SOURCES}
@@ -89,6 +103,7 @@ set(KERNEL_SOURCE_FILES
${PLATFORM_GENERIC_SOURCES}
${PLATFORM_SPECIFIC_SOURCES}
${PLATFORM_SPECIFIC_ASM_SOURCES}
${GENERATED_SOURCES}
)
# Define executable