[−][src]Function sunrise_kernel::syscalls::map_process_memory
pub fn map_process_memory(
dst_addr: usize,
proc_hnd: u32,
src_addr: usize,
size: usize
) -> Result<(), UserspaceError>
Maps the given src memory range from a remote process into the current process as RW-. This is used by the Loader to load binaries into the memory region allocated by the kernel in create_process().
The src region should have the MAP_PROCESS state, which is only available on CodeStatic/CodeMutable and ModuleCodeStatic/ModuleCodeMutable.
Errors
InvalidAddress- src_addr or dst_addr is not aligned to 0x1000.
InvalidSize- size is 0
- size is not aligned to 0x1000.
InvalidMemStatesrc_addr + sizeoverflowsdst_addr + sizeoverflows- The src region is outside of the UserLand address space.
- The dst region is outside of the UserLand address space, or within the heap or map memory region.
- The src memory pages does not have the MAP_PROCESS state.
- The dst memory pages is not of the Unmapped type.
InvalidHandle- The handle passed as an argument does not exist or is not a Process handle.