mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
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.
38 lines
697 B
Modula-2
38 lines
697 B
Modula-2
import "objects/process.def"
|
|
|
|
object vma : object {
|
|
uid d6a12b63b3ed3937
|
|
cname vm_area
|
|
|
|
capabilities [
|
|
map
|
|
unmap
|
|
resize
|
|
]
|
|
|
|
method create [constructor] {
|
|
param size size
|
|
param flags uint32
|
|
}
|
|
|
|
method create_map [constructor cap:map] {
|
|
param size size
|
|
param address address [inout]
|
|
param flags uint32
|
|
}
|
|
|
|
method map [cap:map] {
|
|
param process ref process [optional]
|
|
param address address [inout]
|
|
param flags uint32
|
|
}
|
|
|
|
method unmap [cap:unmap] {
|
|
param process ref process [optional]
|
|
}
|
|
|
|
method resize [cap:resize] {
|
|
param size size [inout]
|
|
}
|
|
}
|