Jan Kiszka wrote:
Dmitry Adamushko wrote:

On Tuesday 01 November 2005 12:58, you wrote:

as "cockie" to the xnintr_irq_handler().

The analogy is irq_desc_t vs. irqaction structures in Linux.

This way, xnintr_irq_handler() can be called from adeos-ipipe layer
directly without the [2] layer.

But that change looks quite invasive to me so far since
ipipe_domain::irqs::handler(irq - with a single parameter) is used all
over the map.

I'd really prefer making one invasive change early in the process of
addressing the issue than several kludges later to work around structural
shortcomings, so no problem, go wild, I'm all ears.

If we only want to get rid of the trampoline-thing then [2] + [3] would work out (btw, I have sent a message this morning where I tried to provide even some pseudo-code :) But if we want to (think that we may) gain the adventage of having a more flexible irq-related support from the ipipe layer, then yep, those changes might look worthy. I thought that this way, we would even get rid of another per-irq (rthal_realtime_irq) array in hal/generic.c, maybe even from rthal_linux_irq too. The sole one is provided by the ipipe_domain structure and a set of generic interfaces e.g. via system.h so that the HAL or another layer may get access of it.


the "cookie" remains opaque for the ipipe but when requested by HAL::rthal_irq_request() or NUCLEUS::xnintr_irq_handler() it's treated as a chain of ISR handlers.

Yep, that's also what I had in mind about potential ipipe changes and
their use in the nucleus.

Ok, let's go for those changes this way:

1. The I-pipe series needs to be updated so that an opaque cookie is passed to the handler; since we have a change in the interface, the 1.1 series has to be started for this purpose.

2. In order to let the people running the legacy RTAI/fusion and Xenomai 2.0.x series a reasonable amount of time to upgrade their patchset, the IRQ layer updates (sharing and trampoline suppression) will go to the Xenomai 2.1 dev branch. IOW, Xenomai 2.1 will be exclusively based on the I-pipe 1.1 series, which also means that Xenomai support for the oldgen Adeos and I-pipe 1.0 patches will be discontinued after the Xenomai 2.0.x series is closed.

3. Changes in the IRQ layer will be made at nucleus level, which is the most efficient way to provide them.

It should be noted that as part of the build system refactoring, the real-time HAL has become a static portion of the Linux kernel, with its generic part being moved to the nucleus. IOW, the proposed changes will basically end up as redispatching some code inside the nucleus.



Reply via email to