Hi Stefan, Thanks for your quick response - I can now get the base capabilities through! (yeah) Your guidance really saved a lot of time! I will look at extending the IRQ session.
Daniel
On 01/31/2013 10:04 AM, Stefan Kalkowski wrote:
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