94 Commits

Author SHA1 Message Date
wash 1db6de6bc2 meta: rename kernel to Magenta 2026-04-30 20:30:36 +01:00
wash 61f0aa1aba vm: address-space: update pmap API usage 2026-04-30 19:14:34 +01:00
wash d63c2dbd12 vm: object: add prefetch function to fetch missing pages 2026-04-30 19:09:41 +01:00
wash 278fe39c0d vm: implement private and shared address space mappings
whether a mapping is private or shared determines how the mapping is handled
when a task is duplicated.
2026-04-21 21:12:00 +01:00
wash 4a9e907a75 vm: implement lazy-attach cow-duplication of vm-objects attached to a controller 2026-04-19 20:16:19 +01:00
wash 06fe1e3704 vm: address-space: implement resolving accesses to copy-on-write pages 2026-04-01 18:38:17 +01:00
wash a0cab068da vm: address-space: implement copy-on-write address-space duplication 2026-04-01 18:36:25 +01:00
wash c8202c6741 vm: controller: implement detach of vm-object whose attachment was deferred 2026-04-01 18:35:08 +01:00
wash 2cbfa7d7d2 vm: object: implement creating copy-on-write duplicates of vm-objects 2026-04-01 18:33:24 +01:00
wash f28fab7afa vm: object: implement vm_object_put_page to add existing pages to a vmo 2026-04-01 18:31:05 +01:00
wash 8595f705af vm: address-space: fix vm-object and address space not being unlocked when a demand-map fails 2026-04-01 18:26:27 +01:00
wash db1a200eea vm: object: fix vm_object_cleanup referencing a vmo controller after the pointer is erased 2026-04-01 18:19:23 +01:00
wash f45b759a4c vm: object: fix vm_object_get_page ignoring VMO_REQUEST_MISSING_PAGE 2026-04-01 18:18:25 +01:00
wash 512356ac2d sched: enforce ref-counting on current task/thread pointers 2026-04-01 18:17:05 +01: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 86f6c81781 vm: address-space: fix infinite loop in validate_access 2026-03-22 19:02:20 +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 e03b2e07d0 vm: address-space: implement address space cleanup 2026-03-18 21:07:27 +00:00
wash 88405233a8 vm: object: implement object cleanup 2026-03-18 20:53:56 +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 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 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 921c91c02a vm: add vm-controller object 2026-03-12 20:39:28 +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 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
wash eb8758bc5e vm: region: fix some cases where regions weren't being unlocked after use. 2026-02-26 19:41:40 +00:00
wash 34bd6e479c vm: region: add nr_bytes_moved output param to memmove_v 2026-02-23 21:50:35 +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 b2d04c5983 vm: object: zero-initialise pages allocated for vm-object 2026-02-21 23:19:49 +00:00
wash 044b3688aa vm: cache: all allocations are now zero-initialised 2026-02-21 23:18:09 +00:00
wash 855440f584 vm: add trace output 2026-02-21 11:22:51 +00:00
wash e1e025ab6a vm: region: memmove_v() now supports iovec arrays stored in userspace 2026-02-21 11:20:09 +00:00
wash aa0933be10 vm: region: implement reading from a user-space vm-region into a kernel buffer 2026-02-21 11:16:11 +00:00
wash 8b188a0ac4 vm: region: fix iterator using wrong buffer offset when seek exceeds current buffer size 2026-02-21 11:07:53 +00:00
wash ed25ee6761 vm: object: fix iterator using wrong buffer offset when seek exceeds current buffer size 2026-02-21 11:07:12 +00:00
wash 0bae39e550 vm: zone: ensure memblock region bounds are page-aligned while creating zone blocks 2026-02-21 11:01:58 +00:00
wash 2b7e5368c9 vm: implement copying data between different vm-regions 2026-02-19 19:15:15 +00:00
wash c6e1ba21dd vm: implement direct read/write/copy access to vm-object memory 2026-02-19 19:09:38 +00:00
wash 2f413c603d kernel: all string parameters now take a corresponding length parameter 2026-02-19 19:08:17 +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 fb7d7635c2 vm: region: refactor to use offsets rather than absolute addresses 2026-02-08 15:51:51 +00:00
wash 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