Commit Graph

580 Commits

Author SHA1 Message Date
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 9001f8e064 kernel: handle: rename handle transfer mode constants 2026-03-29 11:48:31 +01:00
wash 537242e606 kernel: handle: add support for allocating a specific handle value 2026-03-29 11:47:22 +01:00
wash dfffb45e66 libc: adjust formatting 2026-03-29 11:43:39 +01:00
wash f5a83af0d7 kernel: remove SEND_BLOCKED and REPLY_BLOCKED statuses from ports
this allows a port to be used by multiple threads at the same time
2026-03-29 11:42:23 +01:00
wash 7d25f1c31a x86_64: suppress serial port input logging 2026-03-29 11:32:03 +01:00
wash 95d33ddcb9 kernel: msg: async messages no longer hold a pointer to the thread/port that sent them
this prevents a race condition where an event is sent as a port is being destroyed.
when the server gets around to handling the event, it now refers to a different port
that was created in the mean-time.
2026-03-25 20:19:19 +00:00
wash a0a6a061a4 vm: controller: add an auto-detach flag for vm-objects 2026-03-24 20:24:12 +00:00
wash 4daffa804c vm: address-space: fix incorrect op calculation in unmap and release 2026-03-24 20:23:46 +00:00
wash 4be642f2e5 vm: controller: implement asynchronous DETACH page requests 2026-03-24 20:21:35 +00:00
wash 7dc0c742fa kernel: rebuild object ref-counting using atomic types 2026-03-24 19:10:36 +00:00
wash 9faa11cddc kernel: add atomic operations 2026-03-24 19:09: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 86f6c81781 vm: address-space: fix infinite loop in validate_access 2026-03-22 19:02:20 +00:00
wash 6350032e88 cmake: update for compatibility with CMake 4.0 2026-03-22 19:01:36 +00:00
wash a2c89df195 kernel: convert some verbose log messages to trace messages 2026-03-21 10:27:23 +00:00
wash 35949fa8db vm: object: ensure page request offets are page-aligned 2026-03-21 10:27:03 +00:00
wash d6c84565af x86_64: cmake: ensure the kernel is built as a static binary 2026-03-21 10:26:12 +00:00
wash 4551e7b2e6 sched: implement various ways to end tasks and threads 2026-03-18 21:07:43 +00:00
wash e03b2e07d0 vm: address-space: implement address space cleanup 2026-03-18 21:07:27 +00:00
wash 24f9ef85bf sched: implement user-configurable fs and gs segment base addresses 2026-03-18 21:07:05 +00:00
wash 63703a3d34 sched: don't reschedule a thread if its status is THREAD_STOPPED 2026-03-18 21:02:40 +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 b774415f64 sched: wait: implement wakeup_n, waitqueue_empty 2026-03-18 20:56:15 +00:00
wash 04d05adbe8 kernel: handle: implement handle_table_destroy() 2026-03-18 20:55:35 +00:00
wash c0e212ac98 x86_64: panic: fix incorrect kernel stack traversal 2026-03-18 20:54:49 +00:00
wash 88405233a8 vm: object: implement object cleanup 2026-03-18 20:53:56 +00:00
wash 42a293e753 x86_64: pmap: implement pmap_destroy() 2026-03-18 20:53:24 +00:00
wash 1eef23ea98 thread: store struct msg on the stack instead of in the thread 2026-03-18 20:52:47 +00:00
wash 30c9c9db45 kernel: add futex definitions 2026-03-15 22:22:58 +00:00
wash c1e0b38952 vm: object: add missing include 2026-03-15 22:22:43 +00:00
wash 8a38d940cc vm: address-space: add function to translate virtual addresses to physical 2026-03-15 22:22:25 +00:00
wash a2e918c428 vm: evict PTE entries for transferred vm-object pages 2026-03-15 14:40:24 +00:00
wash 399742cabf x86_64: pmap: implement pmap_remove 2026-03-15 14:38:32 +00:00
wash cef4af53c9 x86_64: add pre-processor token to control hardware rng 2026-03-15 14:38:11 +00:00
wash 0af35c70ef vm: implement demand-paging via userspace services with vm-controller 2026-03-14 22:39:14 +00:00
wash f04c524bb5 vm: object: implement transferring pages between objects 2026-03-14 22:38:14 +00:00
wash 5d04dbb15a kerne: object: add lock_pair() functions to object lock template macro 2026-03-14 22:32:59 +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 b7f3bd77a7 libmango: update syscall definitions 2026-03-14 22:29:29 +00:00
wash a50826eb15 x86_64: implement stack traces for user-mode stacks 2026-03-14 22:28:24 +00:00
wash 62bdb51618 kernel: add functions to lock/unlock a pair of locks without saving irq flags 2026-03-14 22:25:15 +00:00
wash 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
wash e73a5c41ce sched: fix thread_awaken manipulating a runqueue without locking it 2026-03-14 22:23:07 +00:00
wash 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
wash 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