wash
f1dd9d8564
kernel: handle: init handle table duplication
2026-04-19 20:07:51 +01:00
wash
9a9b0f63ba
sched: task: optional handle_table pointer can now be passed to task_create
2026-04-19 20:04:18 +01:00
wash
b92542c688
syscall: handle: add stub implementation of kern_handle_control
2026-04-01 18:41:33 +01:00
wash
b8d3125233
syscall: task: initial implementation of task_duplicate
2026-04-01 18:40:28 +01:00
wash
6365154b75
syscall: add missing call to put_current_task
2026-04-01 18:37:10 +01:00
wash
512356ac2d
sched: enforce ref-counting on current task/thread pointers
2026-04-01 18:17:05 +01:00
wash
325699d64a
kernel: fix sys_msg_send returning without unlocking self
2026-03-29 11:51:26 +01:00
wash
286016040c
kernel: only show task name/id in log output if TRACE is enabled
2026-03-29 11:51:05 +01:00
wash
04617e81e3
kernel: add a syscall to query generic information about an object
2026-03-29 11:50:37 +01:00
wash
62770f4ab2
kernel: replace kern_handle_duplicate with the more powerful kern_handle_transfer
...
this syscall can move and copy handles within the current task, or from/to
other tasks
2026-03-29 11:48:59 +01:00
wash
537242e606
kernel: handle: add support for allocating a specific handle value
2026-03-29 11:47:22 +01:00
wash
7dc0c742fa
kernel: rebuild object ref-counting using atomic types
2026-03-24 19:10:36 +00:00
wash
89d02c72ee
kernel: msg: implement asynchronous event messages
2026-03-24 18:32:33 +00:00
wash
110f625f04
syscall: task: implement thread_self
2026-03-22 19:02:31 +00:00
wash
a2c89df195
kernel: convert some verbose log messages to trace messages
2026-03-21 10:27:23 +00:00
wash
4551e7b2e6
sched: implement various ways to end tasks and threads
2026-03-18 21:07:43 +00:00
wash
24f9ef85bf
sched: implement user-configurable fs and gs segment base addresses
2026-03-18 21:07:05 +00:00
wash
d801203f04
syscall: vm-object: fix dangling reference to newly-created object
2026-03-18 21:02:19 +00:00
wash
2a1a0cf14d
kernel: finish implementation of private and shared futexes
2026-03-18 21:02:09 +00:00
wash
0af35c70ef
vm: implement demand-paging via userspace services with vm-controller
2026-03-14 22:39:14 +00:00
wash
a146f4a750
syscall: fix some missed-signal bugs in kern_object_wait
2026-03-14 22:32:26 +00:00
wash
2d267d2b51
kernel: add a syscall to duplicate a handle
2026-03-14 22:31:37 +00:00
wash
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
wash
c6b0bee827
kernel: wire dispatcher for kern_object_wait
2026-03-12 20:43:21 +00:00
wash
6ba236b2fe
kernel: resolving a handle now increments the refcount of the corresponding object
2026-03-12 20:42:05 +00:00
wash
2fb8f556b4
kernel: implement a generic object signalling system
2026-03-12 20:40:23 +00:00
wash
3f21e888d6
sched: split sched.h into separate header files
2026-03-12 20:30:36 +00:00
wash
36c5ac7837
kernel: re-implement sending handles via port messages
2026-03-01 19:10:01 +00:00
wash
f8a7a4285f
syscall: msg: validate iovec array itself as well as the buffers it points to
2026-02-26 20:55:17 +00:00
wash
f9bf4c618a
syscall: log: add task id to log output
2026-02-26 20:54:14 +00:00
wash
e4de3af00d
kernel: remove support for sending kernel handles via port/channel
2026-02-26 20:53:47 +00:00
wash
b59d0d8948
syscall: msg: locking of vm-region is now handled by channel_read_msg
2026-02-26 19:43:07 +00:00
wash
1c7c90ef39
kernel: channel: implement channel_read_msg and msg_read
2026-02-23 21:52:03 +00:00
wash
5f0654430d
syscall: add task_self, task_get_address_space, and vm_region_kill
2026-02-23 18:43:49 +00:00
wash
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
wash
77936e3511
kernel: implement sending, receiving, and replying to message via port/channel
2026-02-21 11:32:57 +00:00
wash
08c78bd6e7
vm: object: add vm_object_copy syscall trace output
2026-02-21 11:30:44 +00:00
wash
1d4fd4f586
syscall: add lots of syscalls
2026-02-19 19:21:50 +00:00
wash
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
wash
9f7b7bdd2d
kernel: refactor syscall dispatch system
2026-02-08 16:17:11 +00:00