#include "intserv.h" int IntSrv_Int_attach( char *cardID, unsigned short address, int region, pid_t Proxy ); int IntSrv_Int_detach( char *cardID ); int IntSrv_IRQ_attach( char *cardID, int IRQ, pid_t Proxy ); int IntSrv_IRQ_detach( char *cardID, int IRQ );
IntSrv_Int_attach() and IntSrv_Int_detach() provide the API support for the interrupt architecture of the "Subbus64" bus. All boards on this bus share a common interrupt line. To determine which board asserted an interrupt, intserv reads from the interrupt acknowledge address. Each board is dynamically assigned one of the 8 acknowledge lines, and will assert that line during interrupt acknowledge if an interrupt is pending.
IntSrv_Int_attach() configures the card at the specified address and associates the Proxy with its interrupt. CardID is a string which uniquely identifies the card which is being configured. If the requesting process dies without detaching the interrupt and is then restarted, intserv will detect that a request for the same card has been received and figure out what the problem is.
IntSrv_Int_detach() disables the card's interrupt.
IntSrv_IRQ_attach() attaches a proxy to the specified IRQ. This allows a non-privileged process to service interrupts indirectly.
IntSrv_IRQ_detach() detaches the proxy from the specified IRQ.
Zero on success.