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

@@ -17,14 +17,12 @@
#define SYS_VM_OBJECT_READ 0x0Du
#define SYS_VM_OBJECT_WRITE 0x0Eu
#define SYS_VM_OBJECT_COPY 0x0Fu
#define SYS_VM_REGION_CREATE 0x10u
#define SYS_VM_REGION_KILL 0x11u
#define SYS_VM_REGION_READ 0x12u
#define SYS_VM_REGION_WRITE 0x13u
#define SYS_VM_REGION_MAP_ABSOLUTE 0x14u
#define SYS_VM_REGION_MAP_RELATIVE 0x15u
#define SYS_VM_REGION_UNMAP_ABSOLUTE 0x16u
#define SYS_VM_REGION_UNMAP_RELATIVE 0x17u
#define SYS_ADDRESS_SPACE_READ 0x12u
#define SYS_ADDRESS_SPACE_WRITE 0x13u
#define SYS_ADDRESS_SPACE_MAP 0x14u
#define SYS_ADDRESS_SPACE_UNMAP 0x15u
#define SYS_ADDRESS_SPACE_RESERVE 0x16u
#define SYS_ADDRESS_SPACE_RELEASE 0x17u
#define SYS_MSG_SEND 0x18u
#define SYS_MSG_RECV 0x19u
#define SYS_MSG_REPLY 0x1Au

View File

@@ -12,7 +12,8 @@
#define VM_PROT_NOCACHE 0x10u
#define VM_PROT_MAP_SPECIFIC 0x40u
#define VM_REGION_ANY_OFFSET ((off_t) - 1)
#define MAP_ADDRESS_ANY ((virt_addr_t) - 1)
#define MAP_ADDRESS_INVALID ((virt_addr_t)0)
#define KERN_HANDLE_INVALID ((kern_handle_t)0xFFFFFFFF)
#define KERN_CFG_INVALID 0x00u