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.
This commit is contained in:
2026-03-13 19:44:50 +00:00
parent c6b0bee827
commit c628390f4a
28 changed files with 1719 additions and 2612 deletions

View File

@@ -1,7 +1,7 @@
#include <kernel/address-space.h>
#include <kernel/iovec.h>
#include <kernel/libc/string.h>
#include <kernel/util.h>
#include <kernel/vm-region.h>
static bool read_iovec(
struct iovec_iterator *it,
@@ -18,7 +18,7 @@ static bool read_iovec(
}
size_t nr_read = 0;
kern_status_t status = vm_region_read_kernel(
kern_status_t status = address_space_read(
it->it_region,
(virt_addr_t)it->it_vecs + (index * sizeof(kern_iovec_t)),
sizeof(kern_iovec_t),
@@ -30,7 +30,7 @@ static bool read_iovec(
void iovec_iterator_begin_user(
struct iovec_iterator *it,
struct vm_region *region,
struct address_space *region,
const kern_iovec_t *vecs,
size_t nr_vecs)
{