Philippe Gerum wrote: > Anders Blomdell wrote: > >> My distinct feeling is that the return value should be a scalar and >> not a set! >> > > To sum up, the valid return values are HANDLED, HANDLED | ENABLE (*), > HANDLED | CHAINED and CHAINED. It's currently a set because I once > thought that the "handled" indication (or lack of) could be a valuable > information to gather at nucleus level to detect unhandled RT > interrupts. Fact is that we currently don't use this information,
But it is required for the edge-triggered case to detect when the IRQ line was at least shortly released. I guess Dmitry introduced that NOINT just because HANDLED equals 0 so far. As I would say HANDLED == !NOINT, we could avoid this new flag by just making HANDLED non-zero. > though. IOW, we could indeed define some enum and have a scalar there > instead of a set; or we could just leave this as a set, but whine when > detecting the invalid ENABLE | CHAINED combination. In combination with the change above and some doc improvement ("valid combinations are: ..."), I could also live with keeping the flags. The advantage were that we wouldn't break existing applications. > > (*) because the handler does not necessary know how to ->end() the > current IRQ at IC level, but Xenomai always does. > Jan
signature.asc
Description: OpenPGP digital signature