poll(struct pollfd *ufds, unsigned int nfds, int timeout). This call can be used to check the state of a sg file descriptor. It will always respond immediately. Typical usages are to periodically poll the state of a sg file descriptor and to determine why a SIG_IO signal was received.
For file descriptors associated with sg devices:
POLLIN one or more responses is awaiting a read()
POLLOUT command can be sent to write() without causing an EDOM error (i.e. sufficient space on sg's queues)
POLLHUP SCSI device has been detached, awaiting cleanup
POLLERR internal structures are inconsistent
POLLOUT indicates the sg will not block a new write() or SG_IO ioctl(). However it is still possible (but unlikely) that the mid level or an adapter may block (or yield EAGAIN).