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

_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

Reply via email to