> Date: Mon, 31 Jul 2017 16:30:07 +0300 > From: Artturi Alm <[email protected]> > > Hi, > > i've been annoyed by this inconsistency for years, and was wondering > if someone would have the time to explain why it is the way it is, or > give me any advice towards the correct&accepted fixes. > > i'll just copypaste some lines of code that should show what i mean: > > #define ARM_IRQ_HANDLER arm_intr > > ASENTRY_NP(irq_entry) > ... > bl ARM_IRQ_HANDLER > ... no r0 usage ... > > void (*arm_intr_dispatch)(void *) = arm_dflt_intr; > > void > arm_intr(void *frame) > { > /* XXX - change this to have irq_dispatch use function pointer */ > (*arm_intr_dispatch)(frame); > } > > int > agtimer_intr(void *frame) > { > ... conditionally set the useless rc ... > return (rc); > } > > go void?
Interrupt handlers return int such that they can be counted. You're missing the actual interrupt control implementtation in your analysis. Is this overengineered? Yes. Is this worth fixing? No.
