Commit Graph

32 Commits

Author SHA1 Message Date
dbe117135b x86_64: implement proper user/kernel %gs base switching
the %gs base address is now always set to the current cpu block while
in kernel-mode, and is switched back to the userspace %gs base
when returning to user-mode.
2026-02-23 18:26:21 +00:00
6019c9307d kernel: separate headers into kernel and user headers
all kernel headers have been moved from include/mango to include/kernel
and include definitions that are only relevant to kernel-space.

any definitions that are relevant to both kernel- and user-space
(i.e. type definitions, syscall IDs) have been moved to
include/mango within libmango.
2026-02-19 18:54:48 +00:00
00ea2b1b3b x86_64: adjust formatting 2026-02-08 11:36:16 +00:00
4051265876 x86_64: implement TSS initialisation and user/kernel stack pointer switching 2026-02-08 11:34:49 +00:00
564d4f9ba0 x86_64: rename struct cpu_context; move to machine/cpu.h 2026-02-08 11:32:09 +00:00
62ec4c93ab meta: rename 2024-11-02 11:31:51 +00:00
d29b955ee8 x86_64: re-enable legacy PIC and PIT initialisation 2024-09-17 17:48:26 +01:00
8af6670b0d x86_64: move serial port code to serialcon kext 2023-12-29 20:35:26 +00:00
27387aa080 x86_64: move ACPI driver to kext 2023-06-09 19:31:30 +01:00
ab4eeb8e16 x86_64: expand IDT to 256 entries 2023-05-07 21:43:04 +01:00
3435c2bffe x86_64: acpi: add dest CPU parameter to io_apic::map_irq() 2023-05-07 21:42:22 +01:00
96e695704a x86_64: allow serial port baud rate to be configured 2023-05-07 12:22:47 +01:00
a9e95db39b x86_64: write printk messages to COM1 serial port 2023-05-06 21:33:36 +01:00
d0371d9204 x86_64: create idle thread and initialise runqueue during AP bootstrap 2023-05-03 19:27:39 +01:00
4677c881e1 x86_64: acpi: bring up other APs in long mode 2023-05-01 18:13:44 +01:00
085c3d2a89 sched: add kernel-mode context switching 2023-04-30 14:27:57 +01:00
995e364b21 x86_64: acpi: fix bad local APIC register offset 2023-04-28 20:49:46 +01:00
b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs 2023-04-13 11:40:52 +01:00
e0e6f4a9ae acpi: calibrate local APIC timer on BSP 2023-03-28 21:38:47 +01:00
864362ba82 acpi: add APIC irq ack and legacy vector remapping 2023-03-24 14:38:53 +00:00
2bfb6bcd78 kernel: add c++ support 2023-03-20 20:41:39 +00:00
a4d850cc03 x86_64: more local and i/o apic configuration 2023-03-20 20:21:44 +00:00
8e9127cd6a x86_64: init local apic on boot, or legacy pic/pit as fallback 2023-03-19 20:36:36 +00:00
57eaf4e01c kernel: implement cpu IDs and per-cpu variables 2023-03-18 19:35:00 +00:00
81ca98c952 x86_64: acpi: add minimal SMP core startup 2023-02-09 21:39:20 +00:00
d960909d1b x86_64: pmap: enable NX protection during bootstrap 2023-02-09 21:38:50 +00:00
ddb00acd31 x86_64: add a basic ACPI driver 2023-02-09 19:09:07 +00:00
b0b557d919 x86_64: add temporary serial driver for printk 2023-02-08 21:28:20 +00:00
5e10f566a4 x86_64: add basic interrupt handling 2023-02-08 20:24:40 +00:00
625eac9ca7 x86_64: implement bootstrap function for pmap interface 2023-02-06 20:50:38 +00:00
b9b3794aee x86_64: initialise memblock using e820 2023-02-05 10:50:13 +00:00
1abc7a4f6c x86_64: move non-ML headers to include/arch/ 2023-02-05 09:45:17 +00:00