a2e918c428
vm: evict PTE entries for transferred vm-object pages
2026-03-15 14:40:24 +00:00
399742cabf
x86_64: pmap: implement pmap_remove
2026-03-15 14:38:32 +00:00
cef4af53c9
x86_64: add pre-processor token to control hardware rng
2026-03-15 14:38:11 +00:00
0af35c70ef
vm: implement demand-paging via userspace services with vm-controller
2026-03-14 22:39:14 +00:00
f04c524bb5
vm: object: implement transferring pages between objects
2026-03-14 22:38:14 +00:00
5d04dbb15a
kerne: object: add lock_pair() functions to object lock template macro
2026-03-14 22:32:59 +00:00
a146f4a750
syscall: fix some missed-signal bugs in kern_object_wait
2026-03-14 22:32:26 +00:00
2d267d2b51
kernel: add a syscall to duplicate a handle
2026-03-14 22:31:37 +00:00
b7f3bd77a7
libmango: update syscall definitions
2026-03-14 22:29:29 +00:00
a50826eb15
x86_64: implement stack traces for user-mode stacks
2026-03-14 22:28:24 +00:00
62bdb51618
kernel: add functions to lock/unlock a pair of locks without saving irq flags
2026-03-14 22:25:15 +00:00
115a2e7415
x86_64: enable interrupts during pmap_handle_fault
...
interrupts will need to be enable to allow for requesting missing pages from userspace
services.
2026-03-14 22:23:43 +00:00
e73a5c41ce
sched: fix thread_awaken manipulating a runqueue without locking it
2026-03-14 22:23:07 +00:00
89dac0c951
sched: add a thread flag to indicate when a thread is scheduled on a runqueue
...
this prevents runqueue corruption that can occur if rq_enqueue is called on
a thread that's already on a runqueue.
2026-03-14 22:22:05 +00:00
7c630ece54
sched: add wait begin/end functions that don't change thread state
...
these functions can be used when waiting on multiple queues at once, to prevent
the thread state from being changed unexpectedly while initialising a set of wait items.
2026-03-14 22:20:10 +00:00
72145257de
x86_64: generate a seed for the RNG with RDRAND when available
2026-03-14 22:18:47 +00:00
d2203d9a65
kernel: replace random number generator with mersenne twister
2026-03-14 22:16:56 +00:00
5e7a467dff
kernel: printk: fix log buffer overflow
2026-03-14 22:16:01 +00:00
c628390f4a
vm: replace vm-region with address-space
...
address-space is a non-recursive data structure, which contains a flat list of vm_areas representing
mapped vm-objects.
userspace programs can no longer create sub-address-spaces. instead, they can reserve portions of
the address space, and use that reserved space to create mappings.
2026-03-13 19:44:50 +00:00
c6b0bee827
kernel: wire dispatcher for kern_object_wait
2026-03-12 20:43:21 +00:00
f67d3a0cb9
libmango: update syscall definitions
2026-03-12 20:42:50 +00:00
6ba236b2fe
kernel: resolving a handle now increments the refcount of the corresponding object
2026-03-12 20:42:05 +00:00
5a37b5e148
kernel: handle: handle_table_transfer now ignores items with KERN_HANDLE_INVALID
2026-03-12 20:41:01 +00:00
2fb8f556b4
kernel: implement a generic object signalling system
2026-03-12 20:40:23 +00:00
921c91c02a
vm: add vm-controller object
2026-03-12 20:39:28 +00:00
3fd608b623
kernel: add equeue object
...
equeue is a way for the kernel to deliver events to userspace programs.
2026-03-12 20:37:51 +00:00
7d4cede788
misc: adjust formatting
2026-03-12 20:34:31 +00:00
3f21e888d6
sched: split sched.h into separate header files
2026-03-12 20:30:36 +00:00
de520cdd2d
libmango: types: add macro to define a kern_msg_handle_t
2026-03-10 19:08:49 +00:00
e84ed6057d
channel: fix incorrect offset used in channel_write_msg
2026-03-10 19:08:20 +00:00
1d4cb882a8
libmango: types: add ssize_t definition
2026-03-06 20:12:32 +00:00
18b281debf
kernel: bsp: add support for static bootstrap executables
2026-03-06 20:12:12 +00:00
09d292fd09
kernel: msg: include details about who sent a message
2026-03-05 21:04:02 +00:00
36c5ac7837
kernel: re-implement sending handles via port messages
2026-03-01 19:10:01 +00:00
b1bdb89ca4
vm: region: add a function to write data from a kernel buffer to a vm-region
2026-03-01 19:09:30 +00:00
f8a7a4285f
syscall: msg: validate iovec array itself as well as the buffers it points to
2026-02-26 20:55:17 +00:00
f9bf4c618a
syscall: log: add task id to log output
2026-02-26 20:54:14 +00:00
e4de3af00d
kernel: remove support for sending kernel handles via port/channel
2026-02-26 20:53:47 +00:00
b59d0d8948
syscall: msg: locking of vm-region is now handled by channel_read_msg
2026-02-26 19:43:07 +00:00
8cc877c251
kernel: port: dequeue kmsg struct once reply is received
2026-02-26 19:42:29 +00:00
2073cad97b
kernel: fix channel locking and status update issues
2026-02-26 19:42:12 +00:00
eb8758bc5e
vm: region: fix some cases where regions weren't being unlocked after use.
2026-02-26 19:41:40 +00:00
1cdde0d32e
kernel: add functions for safely (un)locking pairs of objects
...
when locking a pair of objects, the object with the lesser memory address
is always locked first. the pair is unlocked in the opposite order.
2026-02-26 19:38:49 +00:00
1c7c90ef39
kernel: channel: implement channel_read_msg and msg_read
2026-02-23 21:52:03 +00:00
11c741bd68
libmango: add nr_read output param to msg_read
2026-02-23 21:51:26 +00:00
34bd6e479c
vm: region: add nr_bytes_moved output param to memmove_v
2026-02-23 21:50:35 +00:00
5f0654430d
syscall: add task_self, task_get_address_space, and vm_region_kill
2026-02-23 18:43:49 +00:00
fd1bc0ad5f
kernel: check object refcount before performing a recursive deletion
2026-02-23 18:43:11 +00:00
b1ffdcf2bc
vm: region: improve locking rules and semantics; implement region killing
...
the rules around acquiring locks have been strictly defined and
implemented, and general lock usage has been improved, to fix and
prevent several different issues.
a vm-region is now destroyed in two separate steps:
1. it is "killed": all mappings are unmapped and deleted, the
region is removed from its parent, and the region and all of
its sub-regions are marked as "dead", preventing any
further actions from being performed with the region.
2. it is "destroyed": the vm-region object is de-allocated when
the last reference/handle is closed. the references that this
region holds to any sub-regions are also released, meaning
these regions may also be de-allocated too.
2026-02-23 18:42:47 +00:00
5690dd5b9c
kernel: add support for recursive object destruction (without recursion)
...
this system makes it possible for an object that forms part of a tree
to be safely recursively destroyed without using recursion.
2026-02-23 18:34:12 +00:00