The 'buffer' should point to an object of type sg_io_hdr_t and 'count'
should be sizeof(sg_io_hdr_t) [it can be larger but the excess is ignored].
If the read() call succeeds then the 'count' is returned as the result.
By default, read() will return the oldest completed request that is
queued up. A read() will not interfere with any request associated
with the SG_IO ioctl() on this file descriptor except in a special
case when a SG_IO ioctl() is interrupted by a signal.
If the SG_SET_FORCE_PACK_ID,1 ioctl() is active then read() will attempt
to fetch the packet whose pack_id (given earlier to write()) matches the
sg_io_hdr_t::pack_id given to this read(). If not available it will either
wait or yield EAGAIN. As a special case, -1 in sg_io_hdr_t::pack_id given
to read() will match the request whose response has been waiting for
the longest time. Take care to also set 'dxfer_d