From c21c5b327e76c7b73a8a30c3a8e766fa543f2b8d Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Sun, 19 Apr 2026 16:42:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 - clks/arch/aarch64/{ => startup}/boot.c | 0 .../x86_64/{ => interrupt}/interrupt_stubs.S | 0 clks/arch/x86_64/{ => startup}/boot.c | 0 .../x86_64/{ => startup}/exec_stack_call.S | 0 clks/kernel/{ => core}/interrupts.c | 0 clks/kernel/{ => core}/kmain.c | 0 clks/kernel/{ => core}/log.c | 0 clks/kernel/{ => core}/panic.c | 0 clks/kernel/{ => core}/scheduler.c | 0 clks/kernel/{ => core}/service.c | 0 .../{drivers => kernel/hal}/audio/pcspeaker.c | 0 clks/{drivers => kernel/hal}/serial/serial.c | 0 clks/{drivers => kernel/hal}/video/font8x8.c | 0 clks/{drivers => kernel/hal}/video/font8x8.h | 0 .../hal}/video/framebuffer.c | 0 clks/{drivers => kernel/hal}/video/psf_font.c | 0 clks/{drivers => kernel/hal}/video/psf_font.h | 0 clks/kernel/{ => input}/keyboard.c | 0 clks/kernel/{ => input}/mouse.c | 0 clks/kernel/{ => interface}/desktop.c | 0 clks/kernel/{ => interface}/shell.c | 0 clks/kernel/{ => interface}/tty.c | 0 clks/kernel/limine_requests.c | 101 ------------------ clks/kernel/{ => memory}/heap.c | 0 clks/kernel/{ => memory}/pmm.c | 0 clks/kernel/{ => runtime}/driver.c | 0 clks/kernel/{ => runtime}/elf64.c | 0 clks/kernel/{ => runtime}/elfrunner.c | 0 clks/kernel/{ => runtime}/exec.c | 0 clks/kernel/{ => runtime}/kelf.c | 0 clks/kernel/{ => runtime}/syscall.c | 0 clks/kernel/{ => runtime}/userland.c | 0 clks/kernel/{ => storage}/fs.c | 0 clks/kernel/{ => storage}/ramdisk.c | 0 clks/{lib => kernel/support}/libc_compat.c | 0 clks/{lib => kernel/support}/string.c | 0 37 files changed, 103 deletions(-) rename clks/arch/aarch64/{ => startup}/boot.c (100%) rename clks/arch/x86_64/{ => interrupt}/interrupt_stubs.S (100%) rename clks/arch/x86_64/{ => startup}/boot.c (100%) rename clks/arch/x86_64/{ => startup}/exec_stack_call.S (100%) rename clks/kernel/{ => core}/interrupts.c (100%) rename clks/kernel/{ => core}/kmain.c (100%) rename clks/kernel/{ => core}/log.c (100%) rename clks/kernel/{ => core}/panic.c (100%) rename clks/kernel/{ => core}/scheduler.c (100%) rename clks/kernel/{ => core}/service.c (100%) rename clks/{drivers => kernel/hal}/audio/pcspeaker.c (100%) rename clks/{drivers => kernel/hal}/serial/serial.c (100%) rename clks/{drivers => kernel/hal}/video/font8x8.c (100%) rename clks/{drivers => kernel/hal}/video/font8x8.h (100%) rename clks/{drivers => kernel/hal}/video/framebuffer.c (100%) rename clks/{drivers => kernel/hal}/video/psf_font.c (100%) rename clks/{drivers => kernel/hal}/video/psf_font.h (100%) rename clks/kernel/{ => input}/keyboard.c (100%) rename clks/kernel/{ => input}/mouse.c (100%) rename clks/kernel/{ => interface}/desktop.c (100%) rename clks/kernel/{ => interface}/shell.c (100%) rename clks/kernel/{ => interface}/tty.c (100%) delete mode 100644 clks/kernel/limine_requests.c rename clks/kernel/{ => memory}/heap.c (100%) rename clks/kernel/{ => memory}/pmm.c (100%) rename clks/kernel/{ => runtime}/driver.c (100%) rename clks/kernel/{ => runtime}/elf64.c (100%) rename clks/kernel/{ => runtime}/elfrunner.c (100%) rename clks/kernel/{ => runtime}/exec.c (100%) rename clks/kernel/{ => runtime}/kelf.c (100%) rename clks/kernel/{ => runtime}/syscall.c (100%) rename clks/kernel/{ => runtime}/userland.c (100%) rename clks/kernel/{ => storage}/fs.c (100%) rename clks/kernel/{ => storage}/ramdisk.c (100%) rename clks/{lib => kernel/support}/libc_compat.c (100%) rename clks/{lib => kernel/support}/string.c (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index b4d9011..16c6393 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -320,8 +320,6 @@ endif() set(KERNEL_SOURCE_DIRS "${CMAKE_SOURCE_DIR}/clks/kernel" - "${CMAKE_SOURCE_DIR}/clks/lib" - "${CMAKE_SOURCE_DIR}/clks/drivers" "${CMAKE_SOURCE_DIR}/clks/arch/${CLKS_ARCH}" ) diff --git a/clks/arch/aarch64/boot.c b/clks/arch/aarch64/startup/boot.c similarity index 100% rename from clks/arch/aarch64/boot.c rename to clks/arch/aarch64/startup/boot.c diff --git a/clks/arch/x86_64/interrupt_stubs.S b/clks/arch/x86_64/interrupt/interrupt_stubs.S similarity index 100% rename from clks/arch/x86_64/interrupt_stubs.S rename to clks/arch/x86_64/interrupt/interrupt_stubs.S diff --git a/clks/arch/x86_64/boot.c b/clks/arch/x86_64/startup/boot.c similarity index 100% rename from clks/arch/x86_64/boot.c rename to clks/arch/x86_64/startup/boot.c diff --git a/clks/arch/x86_64/exec_stack_call.S b/clks/arch/x86_64/startup/exec_stack_call.S similarity index 100% rename from clks/arch/x86_64/exec_stack_call.S rename to clks/arch/x86_64/startup/exec_stack_call.S diff --git a/clks/kernel/interrupts.c b/clks/kernel/core/interrupts.c similarity index 100% rename from clks/kernel/interrupts.c rename to clks/kernel/core/interrupts.c diff --git a/clks/kernel/kmain.c b/clks/kernel/core/kmain.c similarity index 100% rename from clks/kernel/kmain.c rename to clks/kernel/core/kmain.c diff --git a/clks/kernel/log.c b/clks/kernel/core/log.c similarity index 100% rename from clks/kernel/log.c rename to clks/kernel/core/log.c diff --git a/clks/kernel/panic.c b/clks/kernel/core/panic.c similarity index 100% rename from clks/kernel/panic.c rename to clks/kernel/core/panic.c diff --git a/clks/kernel/scheduler.c b/clks/kernel/core/scheduler.c similarity index 100% rename from clks/kernel/scheduler.c rename to clks/kernel/core/scheduler.c diff --git a/clks/kernel/service.c b/clks/kernel/core/service.c similarity index 100% rename from clks/kernel/service.c rename to clks/kernel/core/service.c diff --git a/clks/drivers/audio/pcspeaker.c b/clks/kernel/hal/audio/pcspeaker.c similarity index 100% rename from clks/drivers/audio/pcspeaker.c rename to clks/kernel/hal/audio/pcspeaker.c diff --git a/clks/drivers/serial/serial.c b/clks/kernel/hal/serial/serial.c similarity index 100% rename from clks/drivers/serial/serial.c rename to clks/kernel/hal/serial/serial.c diff --git a/clks/drivers/video/font8x8.c b/clks/kernel/hal/video/font8x8.c similarity index 100% rename from clks/drivers/video/font8x8.c rename to clks/kernel/hal/video/font8x8.c diff --git a/clks/drivers/video/font8x8.h b/clks/kernel/hal/video/font8x8.h similarity index 100% rename from clks/drivers/video/font8x8.h rename to clks/kernel/hal/video/font8x8.h diff --git a/clks/drivers/video/framebuffer.c b/clks/kernel/hal/video/framebuffer.c similarity index 100% rename from clks/drivers/video/framebuffer.c rename to clks/kernel/hal/video/framebuffer.c diff --git a/clks/drivers/video/psf_font.c b/clks/kernel/hal/video/psf_font.c similarity index 100% rename from clks/drivers/video/psf_font.c rename to clks/kernel/hal/video/psf_font.c diff --git a/clks/drivers/video/psf_font.h b/clks/kernel/hal/video/psf_font.h similarity index 100% rename from clks/drivers/video/psf_font.h rename to clks/kernel/hal/video/psf_font.h diff --git a/clks/kernel/keyboard.c b/clks/kernel/input/keyboard.c similarity index 100% rename from clks/kernel/keyboard.c rename to clks/kernel/input/keyboard.c diff --git a/clks/kernel/mouse.c b/clks/kernel/input/mouse.c similarity index 100% rename from clks/kernel/mouse.c rename to clks/kernel/input/mouse.c diff --git a/clks/kernel/desktop.c b/clks/kernel/interface/desktop.c similarity index 100% rename from clks/kernel/desktop.c rename to clks/kernel/interface/desktop.c diff --git a/clks/kernel/shell.c b/clks/kernel/interface/shell.c similarity index 100% rename from clks/kernel/shell.c rename to clks/kernel/interface/shell.c diff --git a/clks/kernel/tty.c b/clks/kernel/interface/tty.c similarity index 100% rename from clks/kernel/tty.c rename to clks/kernel/interface/tty.c diff --git a/clks/kernel/limine_requests.c b/clks/kernel/limine_requests.c deleted file mode 100644 index 4f31bdb..0000000 --- a/clks/kernel/limine_requests.c +++ /dev/null @@ -1,101 +0,0 @@ -#include -#include - -CLKS_USED static volatile u64 limine_requests_start[] __attribute__((section(".limine_requests_start"))) = - LIMINE_REQUESTS_START_MARKER; - -CLKS_USED static volatile u64 limine_base_revision[] __attribute__((section(".limine_requests"))) = - LIMINE_BASE_REVISION(3); - -CLKS_USED static volatile struct limine_framebuffer_request limine_framebuffer_request - __attribute__((section(".limine_requests"))) = { - .id = LIMINE_FRAMEBUFFER_REQUEST, - .revision = 0, - .response = CLKS_NULL, -}; - -CLKS_USED static volatile struct limine_memmap_request limine_memmap_request - __attribute__((section(".limine_requests"))) = { - .id = LIMINE_MEMMAP_REQUEST, - .revision = 0, - .response = CLKS_NULL, -}; - -CLKS_USED static volatile struct limine_executable_file_request limine_executable_file_request - __attribute__((section(".limine_requests"))) = { - .id = LIMINE_EXECUTABLE_FILE_REQUEST, - .revision = 0, - .response = CLKS_NULL, -}; - -CLKS_USED static volatile struct limine_module_request limine_module_request - __attribute__((section(".limine_requests"))) = { - .id = LIMINE_MODULE_REQUEST, - .revision = 0, - .response = CLKS_NULL, -}; - -CLKS_USED static volatile u64 limine_requests_end[] __attribute__((section(".limine_requests_end"))) = - LIMINE_REQUESTS_END_MARKER; - -clks_bool clks_boot_base_revision_supported(void) { - return (limine_base_revision[2] == 0) ? CLKS_TRUE : CLKS_FALSE; -} - -const struct limine_framebuffer *clks_boot_get_framebuffer(void) { - volatile struct limine_framebuffer_request *request = &limine_framebuffer_request; - - if (request->response == CLKS_NULL) { - return CLKS_NULL; - } - - if (request->response->framebuffer_count < 1) { - return CLKS_NULL; - } - - return request->response->framebuffers[0]; -} - -const struct limine_memmap_response *clks_boot_get_memmap(void) { - volatile struct limine_memmap_request *request = &limine_memmap_request; - - if (request->response == CLKS_NULL) { - return CLKS_NULL; - } - - return request->response; -} - -const struct limine_file *clks_boot_get_executable_file(void) { - volatile struct limine_executable_file_request *request = &limine_executable_file_request; - - if (request->response == CLKS_NULL) { - return CLKS_NULL; - } - - return request->response->executable_file; -} - -u64 clks_boot_get_module_count(void) { - volatile struct limine_module_request *request = &limine_module_request; - - if (request->response == CLKS_NULL) { - return 0ULL; - } - - return request->response->module_count; -} - -const struct limine_file *clks_boot_get_module(u64 index) { - volatile struct limine_module_request *request = &limine_module_request; - - if (request->response == CLKS_NULL) { - return CLKS_NULL; - } - - if (index >= request->response->module_count) { - return CLKS_NULL; - } - - return request->response->modules[index]; -} diff --git a/clks/kernel/heap.c b/clks/kernel/memory/heap.c similarity index 100% rename from clks/kernel/heap.c rename to clks/kernel/memory/heap.c diff --git a/clks/kernel/pmm.c b/clks/kernel/memory/pmm.c similarity index 100% rename from clks/kernel/pmm.c rename to clks/kernel/memory/pmm.c diff --git a/clks/kernel/driver.c b/clks/kernel/runtime/driver.c similarity index 100% rename from clks/kernel/driver.c rename to clks/kernel/runtime/driver.c diff --git a/clks/kernel/elf64.c b/clks/kernel/runtime/elf64.c similarity index 100% rename from clks/kernel/elf64.c rename to clks/kernel/runtime/elf64.c diff --git a/clks/kernel/elfrunner.c b/clks/kernel/runtime/elfrunner.c similarity index 100% rename from clks/kernel/elfrunner.c rename to clks/kernel/runtime/elfrunner.c diff --git a/clks/kernel/exec.c b/clks/kernel/runtime/exec.c similarity index 100% rename from clks/kernel/exec.c rename to clks/kernel/runtime/exec.c diff --git a/clks/kernel/kelf.c b/clks/kernel/runtime/kelf.c similarity index 100% rename from clks/kernel/kelf.c rename to clks/kernel/runtime/kelf.c diff --git a/clks/kernel/syscall.c b/clks/kernel/runtime/syscall.c similarity index 100% rename from clks/kernel/syscall.c rename to clks/kernel/runtime/syscall.c diff --git a/clks/kernel/userland.c b/clks/kernel/runtime/userland.c similarity index 100% rename from clks/kernel/userland.c rename to clks/kernel/runtime/userland.c diff --git a/clks/kernel/fs.c b/clks/kernel/storage/fs.c similarity index 100% rename from clks/kernel/fs.c rename to clks/kernel/storage/fs.c diff --git a/clks/kernel/ramdisk.c b/clks/kernel/storage/ramdisk.c similarity index 100% rename from clks/kernel/ramdisk.c rename to clks/kernel/storage/ramdisk.c diff --git a/clks/lib/libc_compat.c b/clks/kernel/support/libc_compat.c similarity index 100% rename from clks/lib/libc_compat.c rename to clks/kernel/support/libc_compat.c diff --git a/clks/lib/string.c b/clks/kernel/support/string.c similarity index 100% rename from clks/lib/string.c rename to clks/kernel/support/string.c