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
wash
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
wash
b31c3a40b4
vm: sparse: ensure that vm_pages for the reserved bsp region are created
2026-02-08 12:51:55 +00:00
wash
2b1bed844a
vm: change virt_to_phys param to const
2026-02-08 12:51:23 +00:00
wash
26afc3c6c3
vm: sparse: fix region base/limit alignment calculation
2026-02-08 12:50:08 +00:00
wash
aaa76ff197
memblock: make virt_to_phys pointer param const
2026-02-08 12:33:03 +00:00
wash
0490541dc9
kernel: adjust formatting
2026-02-08 12:32:48 +00:00
wash
62ec4c93ab
meta: rename
2024-11-02 11:31:51 +00:00
wash
149f49bd28
vm: limit sparse page init loop to last free page frame
...
when the sector coverage mode is set to free, the loop that initialises the vm_page structs for free and reserved pages is limited to the same upper bound that is used to calculate the sector size and count.
2023-12-30 15:29:48 +00:00
wash
abfd97b924
memblock: fix bounds being ignored when iterating through total or reserved regions
2023-12-30 15:29:13 +00:00
wash
1c5c256c89
vm: sparse sector map now extends to cover only all free pages by default
...
by default, the sector map created under the sparse model now only extends to the last non-reserved page frame, any reserved page frames afterwards are ignored.
2023-12-29 19:53:31 +00:00