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
981a5f2a0d
kernel: add kern_status_string()
2023-04-09 16:38:31 +01:00
80f5e0483c
sched: initialise kernel_thread parent ptr
2023-04-09 16:38:08 +01:00
da415c7f6d
kernel: implement panic()
2023-04-09 16:35:15 +01:00
9b75ca8b8c
kernel: enumerate internal kexts during boot
2023-04-08 09:27:21 +01:00
a1f54fd156
kexttool: store extensions.yaml in .config instead of build
2023-04-08 09:26:06 +01:00