Commit Graph

15 Commits

Author SHA1 Message Date
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
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
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
0490541dc9 kernel: adjust formatting 2026-02-08 12:32:48 +00:00
62ec4c93ab meta: rename 2024-11-02 11:31:51 +00:00
b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs 2023-04-13 11:40:52 +01:00
b1b16ba19c kernel: reduce log message spam during boot 2023-04-09 17:14:19 +01:00
9792aa512d vm: use vm_memory_mode() to determine which model to initialise 2023-02-08 21:28:47 +00:00
a7d4166c89 vm: implement a sparse memory model 2023-02-08 17:13:01 +00:00
4edc7e308e vm: refactor page_array and functions into a separate source file 2023-02-07 21:18:08 +00:00
e9d4b60181 vm: print log messages during initialisation 2023-02-07 15:43:14 +00:00
0516ef06a3 vm: explicitly initialise kmalloc in vm_bootstrap
if kmalloc is called with count=N before vm_bootstrap is finished,
the request will be fulfilled using memblock_alloc.

if N is a power of 2, the returned pointer will be aligned to
an N-byte boundary.
2023-02-06 20:50:38 +00:00
6afb3bd10d memblock: add alignment parameter to alloc functions 2023-02-06 20:50:38 +00:00
247bb2b530 kernel: port sandbox components 2023-02-03 20:51:23 +00:00
40f83922da sandbox: moved all sources to main kernel tree 2023-02-03 20:43:38 +00:00