Dear Genode Community,
I have some doubts regarding handling IRQ capabilities in L4 fiasco microkernel and Genode. L4 kernel maps IRQs to IRQ kernel objects which are created using l4_factory_create_irq using factory object. In genode, we attach IRQ capabilites to entrypoint thread with l4_irq_attach in core component. Also, signal handler session returns signal context capabilities from core component and l4_irq_attach is also called in signal_source_client. What is the difference between signal context capabilities and IRQ capabilities? (Or IRQ capabilities are kernel space capabilities and signal context capabilities are genode cap map capabilities) Is it possible to attach entrypoint thread to IRQ object capability outside of core component ?
Actually, I'm working on checkpoint/restore project in genode and L4 fiasco. And comparing the kernel cap space before checkpoint and restoring state, we find out that IRQ kernel object capabilities are not same. Signal context capabilities are checkpointed and restored correctly, but problem is (most probably), that while restoring, we don't attach it to entrypoint thread. One approach is to intercept, IRQ session and then attaching irq capability to entrypoint thread capability in restoring process. Please correct me if I am wrong somewhere and any suggestions on above approach will be really appreciated. Thanks a lot.
Regards, Harsha Sharma
[1]. https://sourceforge.net/p/genode/mailman/genode-main/thread/f64ed643-33a3-da...