shared dataspace for l4re_kernel/ registering additional caps in ned

Adam Lackorzynski adam at
Mon Sep 15 23:46:33 CEST 2014


On Fri Sep 12, 2014 at 11:06:04 +0000, Stark, Josef wrote:
> I've succeeded a bit since my original question, however it seems that I'm stuck at the same or a related problem I mentioned there.
> I have not found a solution so far.
> I'll try to explain it as short as possible:
> In my lua config file, I create an IPC gate, and then launch my manager and a second ned instance, passing the IPC gate to both.
> So now manager can send LUA commands through the IPC gate, which then ned executes. This works so far.
> But I also want newly (through manager and second ned) created tasks (or its l4re thread) to be able to talk to manager. 
> For this, I created a second IPC gate in the config and also passed it to manager and ned. Let's call it ipc_gate.
> If, however, manager then issues e.g. the following LUA call (which creates the new task and passes the IPC-gate capability),
> the new task is still not able to communicate with manager.
> "hello = L4.default_loader:start( { caps = { ipc_gate = ipc_gate } }, "rom/hello");
> I guess it's because it's another layer and second ned doesn't "know" about the IPC gate which is created
> in the config file and thereby by first ned, even if I pass the capability to him.
> So, is there any way to enable IPC communication between manager and new tasks created by the second ned?
If I understand correctly, I think you need to write
caps = { ipc_gate = L4.Env.ipc_gate }

L4.Env.ipc_gate is the cap given to the second ned by the first one, so
it's in its environment.
> I tried to illustrate it by making a small diagram (it the font messes it up, I've also attached a png image of it).
> What I need is the ipc line between manager and hello to work.

Thanks, that helped!

Adam                 adam at

More information about the l4-hackers mailing list