Hi Daniel,
On 01/30/2013 11:51 PM, Daniel Waddington wrote:
Hi,
I am trying to hack Genode's core so that either init, or a child of
init, is given the L4_BASE_ICU_CAP. This will allow (as a hack) direct
handling of IRQs from the kernel. My problem is, is that I cannot see
how to get the native task cap (relevant to the parent process) for the
child process (e.g., from the Core_child or Child class) in order to do
the task map.
Can someone give me some hints?
Every task in Genode/Fiasco.OC gets its task capability mapped into its
capability space at position: "Fiasco::TASK_CAP" (please look at
'base-foc/include/base/native_types.h').
The mapping is established when the first thread gets bound to the task,
look at "bind_thread" in 'base-foc/src/core/platform_pd.cc'. We need the
task capability anyway to move capabilities within a task.
With respect to your attempts to get an ICU capability into a task
beyond core: I would suggest to overload the IRQ session of
Genode/Fiasco.OC in a similar manner like it's done for instance with
the CPU session, look at: 'base-foc/include/foc_cpu_session/*'. The CPU
session extension allows for example to allocate additional IRQ
capabilities that can be associated with threads. This extension was
introduced to enable running L4Linux on top Genode. I suppose you can
extend the IRQ session the same way to return ICU capabilities to any
children.
Best Regards
Stefan
Sorry to be hacking your beautiful design ;) and yes, I know this is bad
from a security perspective.
Daniel
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_jan
_______________________________________________
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main