d8326cfec5
sched: remove unused code
2023-05-07 21:42:38 +01:00
3435c2bffe
x86_64: acpi: add dest CPU parameter to io_apic::map_irq()
2023-05-07 21:42:22 +01:00
aaad77aea5
x86_64: zero-init BSP and AP CPU cpu_data before use
2023-05-07 21:40:30 +01:00
9f3c080e41
vm: minimum and maximum zone IDs are now defined in arch/../vm.h
2023-05-07 21:39:31 +01:00
ad2ce0b2ab
build: add rule to run kernel under Bochs
2023-05-07 21:36:53 +01:00
bd26039102
kernel: test: adjust tick-tock multithreading test timing
2023-05-07 12:38:06 +01:00
36834c26b8
doc: document serial port usage for debugging
2023-05-07 12:37:39 +01:00
d2972403dc
repo: update gitignore
2023-05-07 12:37:21 +01:00
96e695704a
x86_64: allow serial port baud rate to be configured
2023-05-07 12:22:47 +01:00
9e16a2e70c
build: add tool to install a bootable ISO to a removable block device
2023-05-07 12:21:25 +01:00
a79d109fcc
obj: add header-offset field to object_type
...
this allows the object header to be placed anywhere within the larger
object structure.
the object system now also ensures that the object is zero-initialised
during allocation.
2023-05-06 22:22:05 +01:00
d8de0ddfe4
build: add rules to build and run iso images
2023-05-06 22:20:28 +01:00
6239b09e8e
x86_64: panic on general protection fault
2023-05-06 22:19:55 +01:00
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