On Fri, Nov 8, 2019 at 6:03 AM Hajime Tazaki <thehajime@xxxxxxxxx> wrote: > > From: Octavian Purdila <tavi.purdila@xxxxxxxxx> > > Add APIs that allows the host to reserve and free and interrupt number > and also to trigger an interrupt. > > The trigger operation will simply store the interrupt data in > queue. The interrupt handler is run later, at the first opportunity it > has to avoid races with any kernel threads. > > Currently, interrupts are run on the first interrupt enable operation > if interrupts are disabled and if we are not already in interrupt > context. > > When triggering an interrupt, it uses GCC's built-in functions for > atomic memory access to synchronize and simple boolean flags. > > Signed-off-by: Hajime Tazaki <thehajime@xxxxxxxxx> > Signed-off-by: Michael Zimmermann <sigmaepsilon92@xxxxxxxxx> > Signed-off-by: Octavian Purdila <tavi.purdila@xxxxxxxxx> > --- > arch/um/lkl/include/asm/irq.h | 13 ++ > arch/um/lkl/include/uapi/asm/irq.h | 36 ++++ > arch/um/lkl/include/uapi/asm/sigcontext.h | 16 ++ > arch/um/lkl/kernel/irq.c | 193 ++++++++++++++++++++++ Like I said before, this also something to unify with UML. I'm aware that this is easily said but we cannot have too much duplication. Feel free to ask if UML internals give you headache. :-) -- Thanks, //richard