Hi Norman,
On Di, 2014-09-23 at 17:01 +0200, Norman Feske wrote:
Hi David,
in my setup, i have a parent process with multiple children with IDs, lets say the are named child_1 to child_3.
the parent recievces messages with an ID and should forward it to the child with the corresponding ID. Therefore all children announce the same service, lets say "child_communcation", to the parent.
In order to avoid ambiguities, the parent process would have to reconfigure its route every time a message arrives. that means if message with ID 3 arrives, the route for the service "child_communication" must lead to child_3.
this solution seems odd to me, am i missing a mechanism in genode that allows a parent to communicate with its children directly, when they all announced the same service?
admittedly, I struggle a bit with following your email. To clarify, with "parent process" you refer to a program that you created, or are you referring to an instance of init?
The former is the case. It is a programm I created and is started by init.
If the former is the case (what I'm expecting), how do you run the child processes? Are you using the Genode::Child class (from 'base/child.h') or the Genode::Slave class (from 'os/slave.h')?
I am using the Genode::Child class.
From where does the parent receives messages? From any of its children
or some other process?
The parent does not receive messages via genode's mechanism. In fact, my project is based on the TZ VMM. The messages reside in the RAM of the normal world (running linux). The parent process runs in genode in the secure world, reading messages out of a queue in the normal world's RAM.
Just to allow me to get a better grasp on your problem, could you outline the scenario in slightly more general terms?
All in all, i want to define a single service, which the children announce to its parent. The problem is how to let the parent send messages via the service interface to a designated child.
Cheers Norman
I hope I could clarify my problem, thanks for your reply! David