ad8865fe66
obj: implement object_namespace_get_object()
2023-05-10 20:33:08 +01:00
422d4fb375
kernel: implement ring-buffer data structure
2023-05-10 20:32:29 +01:00
63f27adb1b
sched: implement waitqueues
2023-05-10 20:29:57 +01:00
b3957b311a
x86_64: remove printk call from isr/irq handlers
2023-05-10 20:22:51 +01:00
a4f2dec1fb
kext: add PS/2 keyboard/mouse driver
2023-05-08 18:19:28 +01:00
add48f8a83
x86_64: acpi: create acpi bus device
2023-05-08 18:19:12 +01:00
2638b8c27a
x86_64: initialise device subsystem during boot
2023-05-08 18:18:59 +01:00
1a633eee6b
dev: implement object callbacks for devices. add misc device
2023-05-08 18:18:34 +01:00
4d04959219
build: add rules to configure kexts
2023-05-08 18:17:14 +01:00
482e65d13d
x86_64: irq: add array of asm irq entry points
2023-05-08 08:08:33 +01:00
55c8918d28
x86_64: serial: enable interrupts and announce incoming data
2023-05-07 21:44:03 +01:00
ab4eeb8e16
x86_64: expand IDT to 256 entries
2023-05-07 21:43:04 +01:00
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