Omega0: A portable interface to interrupt hardware for L4 systems for an Omega0 interface specification. The l4io package sources this package for its multi-server including Omega0.libomega0.a - Omega0 client API library section.
If all clients that were signalled by Omega0 are waiting for the next interrupt, it is assumed that one of them consumed the irq, and the irq is automatically consumed by Omega0. If one client signals that it consumed the irq, the irq is consumed immediately. Each irq is consumed only once.
Automatic consume requires all clients to either issue a wait-request to the next interrupt or to issue a consume-request, or both. It is not allowed to silently ignore an irq and to something else, even if the irq was for another device.
This behaviour is enabled by setting the OMEGA0_STRATEGY_AUTO_CONSUME-define in config.h in the server/src dir.
The `management thread' of the Omega0 task is registered at the name service and should be the addressed by all RPCs except the `request' RPC.