Samuel Thibault <samuel.thiba...@gnu.org> writes:

> A simpler way for now would be to make deliver_intr and
> device_intr_enable count how many "disables" we have for each irq.
> Both device_intr_register and deliver_intr would increase it (and thus
> disable the irq), and userland would have to call device_intr_enable
> to decrease the counter so the irq can be re-enabled. Of course if
> some userland "forgets" to call device_intr_enable(), the irq will
> stay disabled and we're screwed with anything else sharing the irq
> until userland gets killed for instance.  But at least it seems like a
> workable way for sharing interrupts between different userland processes
> (and gnumach drivers if any, e.g. the current ahci).

I remember thinking about using a send-once right that when deallocated
enables the interrupt again.  This should be a) well optimized, and b)
robust in the face of misbehaving userland.

Attachment: signature.asc
Description: PGP signature

Reply via email to