[kernel] Change VMA syscall addr param to inout

This change allows the `vma_map` and `vma_create_map` syscalls to map to
addresses other than the one specified, and therefore makes the address
parameter to those syscalls `inout` in order to return the mapped
address.

Also add the `exact` flag for specifying that mapping needs to be done
at the exact address given. If the mapping collides with another, the
new `j6_err_collision` error is returned.
This commit is contained in:
Justin C. Miller
2023-08-31 19:40:02 -07:00
parent 8cbde13139
commit fc16ed54b3
16 changed files with 93 additions and 69 deletions

View File

@@ -17,13 +17,14 @@ object vma : object {
method create_map [constructor cap:map] {
param size size
param address address
param address address [inout]
param flags uint32
}
method map [cap:map] {
param process ref process [optional]
param address address
param address address [inout]
param flags uint32
}
method unmap [cap:unmap] {