Commit Graph

281 Commits

Author SHA1 Message Date
6cf8f4234a x86_64: print stack trace during panic 2023-05-06 22:18:40 +01:00
90afd997e6 tools: add tool to generate kernel boot cd image 2023-05-06 21:34:02 +01:00
a9e95db39b x86_64: write printk messages to COM1 serial port 2023-05-06 21:33:36 +01:00
94ea756b31 kernel: write to all registered consoles with printk() 2023-05-06 21:32:19 +01:00
f52ca2f1e2 obj: object header is no longer allocated automatically 2023-05-06 19:48:14 +01:00
79c30e5393 tools: sync: create .config directory if it doesn't exist 2023-05-06 19:45:09 +01:00
76919abb10 x86_64: smp: initialise APs in parallel
bring_all_ap_online() now initialises all APs in parallel, and waits
for them all to come online (i.e. reach the end of ap_trampoline_exit,
making them ready to start scheduling threads) before returning.
2023-05-05 15:25:55 +01:00
cec6b644ac kernel: add functions to query the number of available/online CPUs 2023-05-05 15:25:44 +01:00
2ca1bd0b06 x86_64: acpi: only mask pit irq line during bsp init 2023-05-05 15:20:20 +01:00
7d321fb7f0 sched: add kernel thread creation and SMP-aware thread scheduling 2023-05-04 21:43:18 +01:00
bb524c1576 kernel: add support for getting percpu variables that belong to other CPUs 2023-05-04 21:42:51 +01:00
3f91c96050 x86_64: smp: flag cpu as online during bootstrap 2023-05-04 21:41:39 +01:00
a3df88f062 kernel: fix bad offset calculation in bitmap_check() 2023-05-04 21:41:15 +01:00
5611fce641 x86_64: smp: query CPU ID using CPUID during bootstrap 2023-05-04 21:04:17 +01:00
cd257e41cf x86_64: smp: reset __this_ap_ok to 0 before starting AP 2023-05-03 20:20:22 +01:00
4bcd00fc3c x86_64: smp: set AP idle thread ID to CPU ID 2023-05-03 20:19:56 +01:00
3a315901ba sched: fix create_idle_thread() not initialising tr_parent 2023-05-03 20:19:11 +01:00
cbd6aae037 kernel: test: replace schedule_timeout with milli_sleep 2023-05-03 19:27:58 +01:00
d0371d9204 x86_64: create idle thread and initialise runqueue during AP bootstrap 2023-05-03 19:27:39 +01:00
c64577e24e sched: add function to create per-cpu idle threads 2023-05-03 19:27:18 +01:00
ad58693dfb x86_64: panic: fix printk formatting specifiers for cpu registers 2023-05-03 19:26:19 +01:00
a52571eb19 kernel: add panic() function that accepts a cpu_context 2023-05-03 19:26:09 +01:00
390fe86657 x86_64: enable NX protection during AP bootstrap 2023-05-03 19:20:07 +01:00
2a96aa7be9 build: fix arch cflags not being used when compiling C++ files 2023-05-03 19:19:21 +01:00
4677c881e1 x86_64: acpi: bring up other APs in long mode 2023-05-01 18:13:44 +01:00
223b37a113 vm: only align slab headers when offslab is being used 2023-05-01 18:12:46 +01:00
654e54653c x86_64: pmap: implement pmap_add() 2023-05-01 18:12:07 +01:00
fbbe339f72 sched: schedule() no longer switches threads when preempt_count > 0 2023-05-01 08:27:18 +01:00
40762ffb95 kernel: add function to query the current preempt count 2023-05-01 08:26:41 +01:00
194efd4b6b sched: fix timeout_expiry() not releasing its reference to this_cpu 2023-05-01 08:26:13 +01:00
8a0291c9b3 sched: add timer tasks and schedule_timeout() 2023-04-30 21:09:36 +01:00
085c3d2a89 sched: add kernel-mode context switching 2023-04-30 14:27:57 +01:00
2cb2d9100a x86_64: define struct offsets for access from assembly 2023-04-30 14:26:37 +01:00
c945ee059a build: define source root directory and kernel arch for tool makefiles 2023-04-30 14:25:41 +01:00
f349e4963c x86_64: charge clock cycles to threads when handling IRQs
Clock cycles that are used to handle the IRQ itself are *not*
charged to the thread.
2023-04-28 21:06:59 +01:00
e2131b08ac sched: track CPU clock cycles used by threads 2023-04-28 21:05:48 +01:00
6b1b4a2416 kernel: add function to calculate delta between two cycle timestamps 2023-04-28 21:05:13 +01:00
72d8facd47 kernel: add standard clock system 2023-04-28 20:51:51 +01:00
995e364b21 x86_64: acpi: fix bad local APIC register offset 2023-04-28 20:49:46 +01:00
e7fe5a8f8e kernel: add function to query CPU clock cycle count 2023-04-22 21:07:34 +01:00
a8a6ff123e kxld: register kernel self pseudo-kext 2023-04-15 09:12:47 +01:00
b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs 2023-04-13 11:40:52 +01:00
0d75e347e9 doc: document object layout and definitions 2023-04-09 21:26:56 +01:00
f7d581d352 obj: remove unused ob_parent pointer from object_t 2023-04-09 21:26:33 +01:00
e38ca58f18 kxld: publish kext objects in //kexts 2023-04-09 20:40:06 +01:00
5d9f193aa2 obj: objects can now be published in the namespace root 2023-04-09 20:35:17 +01:00
b1b16ba19c kernel: reduce log message spam during boot 2023-04-09 17:14:19 +01:00
eb998860a5 kxld: implement internal kext dependency resolution and initialisation 2023-04-09 16:43:03 +01:00
076a15e47b kernel: add second example kext for dependency test 2023-04-09 16:42:16 +01:00
c7fdb81ef9 kernel: implement string hashing with FNV 2023-04-09 16:39:08 +01:00