summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/Build.mk11
-rw-r--r--kernel/main.cc6
-rw-r--r--kernel/module.mk26
3 files changed, 17 insertions, 26 deletions
diff --git a/kernel/Build.mk b/kernel/Build.mk
new file mode 100644
index 0000000..8f8ffa0
--- /dev/null
+++ b/kernel/Build.mk
@@ -0,0 +1,11 @@
+targets += kernel/core
+target.kernel/core.kind := source-set
+target.kernel/core.sources := \
+ kernel/main.cc kernel/sync/spinlock.cc kernel/sync/mutex.cc \
+ kernel/trap.cc kernel/irq.cc kernel/sched_core.cc \
+ kernel/sched_class_o1.cc kernel/timer.cc kernel/pid.cc kernel/pgrp.cc \
+ kernel/task.cc kernel/syscall.cc kernel/sys_process.cc kernel/sys_mm.cc \
+ kernel/sys_info.cc kernel/sys_fs.cc kernel/uaccess.cc kernel/waitqueue.cc \
+ kernel/signal.cc kernel/sys_signal.cc kernel/sys_misc.cc kernel/exec.cc \
+ kernel/poll.cc kernel/ptrace.cc kernel/smp.cc
+
diff --git a/kernel/main.cc b/kernel/main.cc
index db5843c..c84f3ad 100644
--- a/kernel/main.cc
+++ b/kernel/main.cc
@@ -82,7 +82,9 @@ void tty_init(); // 15.5. TTY subsystem (console TTY + UART RX IRQ)
void populate_rootfs(); // 15.6. Unpack embedded initramfs CPIO into ramfs
// Boot self-test runner
+#ifdef CONFIG_SELFTEST
void selftest_run_all();
+#endif
// AP per-CPU init
void vmm_init_ap(); // Switch to BSP-built kernel page table
@@ -100,6 +102,7 @@ static void init_thread_func(void *) {
printk(KERN_INFO "[init] PID 1 started\n");
/* Run post-SMP tests — APs are online by now */
+#ifdef CONFIG_SELFTEST
extern void selftest_smp();
kprintf("\n========================================\n");
kprintf(" Post-SMP Test Suite\n");
@@ -108,6 +111,7 @@ static void init_thread_func(void *) {
kprintf("========================================\n");
kprintf(" Post-SMP tests PASSED\n");
kprintf("========================================\n\n");
+#endif
/*
* Set up init's own VFS context (like Linux kernel_init).
@@ -326,7 +330,9 @@ extern "C" [[noreturn]] void kernel_main(uint64 cpu_id, uint64 fdt_paddr) {
// 17. Boot self-tests — verify subsystem correctness.
// Tests that create kthreads must wait() for them (freeing PIDs).
+#ifdef CONFIG_SELFTEST
selftest_run_all();
+#endif
// 18. Spawn PID 1 (init) — the first persistent task.
// Like Linux's rest_init() → user_mode_thread(kernel_init).
diff --git a/kernel/module.mk b/kernel/module.mk
deleted file mode 100644
index 754a14c..0000000
--- a/kernel/module.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# kernel/module.mk
-SRCS_CC += kernel/main.cc
-SRCS_CC += kernel/sync/spinlock.cc
-SRCS_CC += kernel/sync/mutex.cc
-SRCS_CC += kernel/trap.cc
-SRCS_CC += kernel/irq.cc
-SRCS_CC += kernel/sched_core.cc
-SRCS_CC += kernel/sched_class_o1.cc
-SRCS_CC += kernel/timer.cc
-SRCS_CC += kernel/pid.cc
-SRCS_CC += kernel/pgrp.cc
-SRCS_CC += kernel/task.cc
-SRCS_CC += kernel/syscall.cc
-SRCS_CC += kernel/sys_process.cc
-SRCS_CC += kernel/sys_mm.cc
-SRCS_CC += kernel/sys_info.cc
-SRCS_CC += kernel/sys_fs.cc
-SRCS_CC += kernel/uaccess.cc
-SRCS_CC += kernel/waitqueue.cc
-SRCS_CC += kernel/signal.cc
-SRCS_CC += kernel/sys_signal.cc
-SRCS_CC += kernel/sys_misc.cc
-SRCS_CC += kernel/exec.cc
-SRCS_CC += kernel/poll.cc
-SRCS_CC += kernel/ptrace.cc
-SRCS_CC += kernel/smp.cc