#include <ieee1284.h>
enum ieee1284_status_bits { S1284_NFAULT = 0x08, S1284_SELECT = 0x10, S1284_PERROR = 0x20, S1284_NACK = 0x40, S1284_BUSY = 0x80, /* To convert those values into PC-style register values, use this: */ S1284_INVERTED = S1284_BUSY, };
These functions all act on the parallel port associated with port, which must be claimed.
The purpose of ieee1284_wait_status is to wait until particular status lines have specified values. Its timeout parameter may be modified on return.
For ieee1284_read_status, the return value is a non-negative integer with bits set as appropriate representing the status lines. A negative result indicates an error.
For ieee1284_wait_status, the return value is E1284_OK if the status lines now reflect the desired values (i.e. status & mask is val), or a negative result indicating an error.
Possible error codes:
E1284_NOTIMPL
E1284_NOTAVAIL
E1284_TIMEDOUT
E1284_INVALIDPORT
The nAck pin is often able to trigger interrupts on the host machine. With operating system help these interrupts may be visible to the application via the file descriptor returned by ieee1284_get_irq_fd.
Under Linux, the conditions are that the parallel port driver knows which interrupt line to use and is using it, and that the relevant /dev/parport device node is accessible and backed by a device driver.
Tim Waugh <twaugh@redhat.com>