Re: Mapping memory into process address space

Noah Zentzis <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
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
factory->create(region, L4Re::Protocol::Rm);
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.