Interrupt notification
#include <ieee1284.h>
int ieee1284_get_irq_fd(struct parport *port); int ieee1284_clear_irq(struct parport *port, unsigned int *count);
If the port has a configured interrupt line and the port type supports interrupt notification, it is possible to obtain a file descriptor that may be used for select(2) or poll(2). Any event (readable, writable or exception) means that an interrupt has been triggered. No operations other than select or poll may be performed on the file descriptor.
The port must be open in order to call ieee1284_get_irq_fd, and must be claimed when using select or poll.
The caller must not close the file descriptor, and may not use it at all when the port is not claimed.
When an interrupt has been detected, the caller must call ieee1284_clear_irq to clear the interrupt condition, at which point the number of interrupts raised can be obtained by supplying a non-NULL count.
For ieee1284_get_irq_fd: If the return value is negative then it is an error code listed below. Otherwise it is a valid file descriptor.
E1284_NOTAVAIL
No such file descriptor is available.
E1284_INVALIDPORT
The port parameter is invalid (for instance, perhaps the port is not open).
For ieee1284_clear_irq:
E1284_OK
The interrupt has been cleared. If count was not NULL the count of interrupts has been atomically stored to count and reset.
E1284_NOTAVAIL
The count parameter was not NULL but interrupt counting is not supported on this type of port. The interrupt has been cleared.
E1284_SYS
There was a problem clearing the interrupt.
E1284_INVALIDPORT
The port parameter is invalid (for instance, perhaps the port is not claimed).
Tim Waugh <[email protected]>
Author.
Copyright © 2001-2003 Tim Waugh