Mapping memory into process address space
nzentzis at pdx.edu
Thu Aug 28 06:33:41 CEST 2014
On 08/21/2014 02:14 PM, Adam Lackorzynski wrote:
> Yes, you'd need to create a new region mapper for the new task, one that
> knows about the virtual address space layout of that one. Should be
> possible by using a new instance of Region_map as done in the
> l4re_kernel.You'll also need to create an IPC-gate to be used as the
> pager for the new task and which is routed to the Region_map instance
> for that task. You also need to handle other events that come through
> the pager channel, see Dispatcher::dispatch in
> l4re_kernel/server/src/dispatcher.cc for the switch block.
I'm not sure how to create a new Rm instance - I'm trying this:
L4::Cap<L4Re::Rm> region = newcap<L4Re::Rm>(); // allocate capability
check_cap(region, "Failed to allocate region map");
But the factory fails to create a new region map. This is, as far as I
can tell, exactly what libloader is doing, so I'm not sure what's wrong.
Also, can I use the current task's pager for testing instead of
implementing the interface, or will it fail if I don't handle paging myself?
- Noah Zentzis
More information about the l4-hackers