Hi,
I tried to completely remove the default-route with any-service/any-child from my runfile and only explicitly allow services to components. I have created a minimal example with only the timer driver [1] but I wasn't able to explicitly grant service access to the timer driver.
When I prepend <any-service> with an explicit
<service name="PD">> <child name="timer"/>
</service>
the timer driver fails with a denied PD environment session.
What is the correct approach to do this?
Regards, Johannes
Hello Johannes,
On Fri, Oct 13, 2017 at 04:04:40PM +0200, Johannes Kliemann wrote:
I tried to completely remove the default-route with any-service/any-child from my runfile and only explicitly allow services to components. I have created a minimal example with only the timer driver [1] but I wasn't able to explicitly grant service access to the timer driver.
When I prepend <any-service> with an explicit
<service name="PD">> <child name="timer"/>
</service>
the timer driver fails with a denied PD environment session.
This route looks odd as it reads: Route any requests to service "PD" to the child "timer".
What is the correct approach to do this?
You email missed the reference [1] but I would adapt log.run like follows.
+++ b/repos/base/run/log.run @@ -10,12 +10,15 @@ install_config { <service name="CPU"/> <service name="ROM"/> </parent-provides> - <default-route> - <any-service> <parent/> </any-service> - </default-route> <default caps="50"/> <start name="test-log"> <resource name="RAM" quantum="10M"/> + <route> + <service name="PD"> <parent/> </service> + <service name="CPU"> <parent/> </service> + <service name="LOG"> <parent/> </service> + <service name="ROM"> <parent/> </service> + </route> </start> </config> }
Does this answer your question?
Greets
Hello Christian,
thanks for the quick response. It answered my question.
I indeed missed the reference [1], so I'll append it here. I also created a small example with an empty default route [2] that works for me.
Regards, Johannes
[1]: https://github.com/jklmnn/genode/blob/d2a86faf9035e17c64a0b52aeab648fcb913f4... [2]: https://github.com/jklmnn/genode/blob/797578e903b85e64da2925b09024b6ab5d6780...
Am 13.10.2017 um 16:36 schrieb Christian Helmuth:
Hello Johannes,
On Fri, Oct 13, 2017 at 04:04:40PM +0200, Johannes Kliemann wrote:
I tried to completely remove the default-route with any-service/any-child from my runfile and only explicitly allow services to components. I have created a minimal example with only the timer driver [1] but I wasn't able to explicitly grant service access to the timer driver.
When I prepend <any-service> with an explicit
<service name="PD">> <child name="timer"/>
</service>
the timer driver fails with a denied PD environment session.
This route looks odd as it reads: Route any requests to service "PD" to the child "timer".
What is the correct approach to do this?
You email missed the reference [1] but I would adapt log.run like follows.
+++ b/repos/base/run/log.run @@ -10,12 +10,15 @@ install_config { <service name="CPU"/> <service name="ROM"/> </parent-provides>
<default-route>
<any-service> <parent/> </any-service>
</default-route>
<default caps="50"/> <start name="test-log"> <resource name="RAM" quantum="10M"/>
<route>
<service name="PD"> <parent/> </service>
<service name="CPU"> <parent/> </service>
<service name="LOG"> <parent/> </service>
<service name="ROM"> <parent/> </service>
</route>
</start> </config>
}
Does this answer your question?
Greets