291a5f677e
sched: implement passing arguments to user-mode threads
2026-02-19 19:05:53 +00:00
b188573eea
x86_64: pmap: change pmap_remove* pointer args to virt_addr_t
2026-02-19 19:02:28 +00:00
c69aed254f
x86_64: enable interrupts during syscall execution
2026-02-19 19:00:04 +00:00
44c2904c11
x86_64: re-arrange user and kernel GDT entries for compatibility with syscall instruction
2026-02-19 18:59:37 +00:00
f89e3cb12c
kernel: adjust formatting
2026-02-19 18:57:53 +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
e3dd48a0fa
build: remove per-subdirectory log message
2026-02-08 16:17:47 +00:00
9f7b7bdd2d
kernel: refactor syscall dispatch system
2026-02-08 16:17:11 +00:00
c424e8127e
kernel: bsp: update vm-region api usage
2026-02-08 15:52:04 +00:00
fb7d7635c2
vm: region: refactor to use offsets rather than absolute addresses
2026-02-08 15:51:51 +00:00
409725f9d4
kernel: implementing mapping and execution of bsp executable
2026-02-08 13:13:03 +00:00
1c74291b99
kernel: add a temporary syscall dispatch system
2026-02-08 13:12:24 +00:00
5d28955dc6
vm: update vm-page documentation
2026-02-08 13:11:41 +00:00
ee82097017
sched: implement user-mode task and thread creation
2026-02-08 13:11:17 +00:00
d2f303680d
sched: add root vm-region and handle table to struct task
2026-02-08 13:10:54 +00:00
27bed1a3d3
sched: all kernel-mode tasks now have negative task ids
2026-02-08 13:09:29 +00:00
18a5325fa7
sched: add PID_MAX definition
2026-02-08 13:07:14 +00:00
7eaad64969
pmap: declare fault handler function and flags
2026-02-08 13:06:19 +00:00
343689764f
x86_64: irq: route user-mode page faults to pmap_handle_fault
2026-02-08 13:05:29 +00:00
5f2ad06fb0
x86_64: all intermediate page table entries now have PTE_USR set
...
this allows user-accessible page mappings to be created. for kernel memory
mappings, PTE_USR will only be cleared on the lowest-level table entry.
2026-02-08 13:03:41 +00:00
67b3be9732
x86_64: add pmap_handle_fault to route user-mode page faults to vm-region to resolve
2026-02-08 13:03:28 +00:00
883b5ac9e2
vm: add vm-region to manage userspace virtual memory address spaces
...
vm-region supports creating nested regions of virtual memory, each with their
own memory protection restrictions.
vm-objects can be mapped into a vm-region, making the underlying memory
accessible. all mappings are lazy: page tables are not updated until the
mapped memory is accessed.
2026-02-08 12:59:08 +00:00
b8ccffd2d4
vm: add vm-object to represent non-contiguous physical memory allocations
...
vm-object can be used to demand-allocate non-contiguous physical memory, and
will provide an api for userspace programs to do the same. unless a vm-object
is created in-place (i.e. to represent a specific area of physical memory),
its memory pages are only allocated when the object is mapped AND someone
attempts to access the memory.
2026-02-08 12:58:31 +00:00
14ebcd4875
kernel: implement object handle tables
2026-02-08 12:55:47 +00:00
6950850f5b
object: add a macro to define object lock/unlock functions
2026-02-08 12:55:13 +00:00
bcda479879
sched: implement task id allocation; remove thread id bitmap
2026-02-08 12:54:43 +00:00
7c4cff24f2
test: update object api usage
2026-02-08 12:52:14 +00:00
b31c3a40b4
vm: sparse: ensure that vm_pages for the reserved bsp region are created
2026-02-08 12:51:55 +00:00
2b1bed844a
vm: change virt_to_phys param to const
2026-02-08 12:51:23 +00:00
26afc3c6c3
vm: sparse: fix region base/limit alignment calculation
2026-02-08 12:50:08 +00:00
d94a6ec7cb
kernel: add generic FATAL_ERROR status code
2026-02-08 12:48:59 +00:00
0d73196b4b
printk: add macro for conditional trace-level printk statements
2026-02-08 12:48:33 +00:00
687ba31d55
bitmap: fix bitmal_clear() clearing bits in the wrong direction
2026-02-08 12:47:58 +00:00
9e223ca5d0
x86_64: implement syscall instruction init and dispatch
2026-02-08 12:47:28 +00:00
4de1463e7c
object: add functions to track handle allocation
2026-02-08 12:37:08 +00:00
5304e5be00
object: rename deref to unref
2026-02-08 12:36:32 +00:00
0853cff56b
vm: remove vm_region; add vm_page_get_size_bytes
2026-02-08 12:33:36 +00:00
aaa76ff197
memblock: make virt_to_phys pointer param const
2026-02-08 12:33:03 +00:00
0490541dc9
kernel: adjust formatting
2026-02-08 12:32:48 +00:00
49a75a1bbe
pmap: change pmap_add* virtual pointer parameter to virt_addr_t
2026-02-08 12:08:26 +00:00
34f614b881
libc: move fill_random to kernel/util
2026-02-08 12:06:50 +00:00
720ed75770
x86_64: add invalid pmap pointer constant
2026-02-08 11:59:18 +00:00
880930e917
x86_64: implement functions to jump to userspace
2026-02-08 11:58:27 +00:00
da611ab070
x86_64: find, record, and reserve the memory location of the bsp
2026-02-08 11:52:33 +00:00
129e782e99
kernel: add functions to get/set the bsp boot module location
2026-02-08 11:38:50 +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
c04b33647c
x86_64: add kernel and user virtual memory boundary definitions
2026-02-08 11:27:37 +00:00
a56d69e260
kernel: add a type to represent boot modules
2026-02-08 11:02:35 +00:00