• Philippe Gerum's avatar
    cobalt/intr: introduce IRQ disabled state · aefaab5d
    Philippe Gerum authored
    With the IRQ line enable/disable operations restricted to the root
    domain, interrupt handlers may not invoke xnintr_disable() directly to
    shut down the interrupt line.
    
    To support this requirement, we add an explicit disabled state to the
    interrupt descriptor, which the handler may turn on by returning the
    new XN_IRQ_DISABLE operation status. In response, the core disables
    the descriptor, shutting down the interrupt line in the same move
    instead of unmasking it on return from the interrupt context.
    
    XN_IRQ_DISABLE is exposed by RTDM as RTDM_IRQ_DISABLE.
    
    As a consequence of this change, XN_ISR_NOENABLE was dropped as we
    have no in-tree client which need such semantics anymore.
    
    At this chance, various naming and documentation fixes have been
    applied.
    aefaab5d
cobalt-core.h 14 KB