This is the number of scatter gather elements in an array pointed
to by 'dxferp'. If the value is zero then scatter gather (in the
user space) is _not_ being used and 'dxferp' points to the data
transfer buffer. If the value is greater than zero then each
element of the array is assumed to be of the form:
typedef struct sg_iovec
{
void * iov_base; /* starting address */
size_t iov_len; /* length in bytes */
} sg_iovec_t; |
Note that this structure has been named and defined in such a way to
parallel "struct iovec" used by the readv() and writev() system calls
in Linux. See "man 2 readv".
Note that the scatter gather capability offered by 'iovec_count' is unrelated
to the scatter gather capability (often associated with DMA) offered by
most modern SCSI adapters. Furthermore iovec_count's variety of scatter
gather (into the user space) is only available when normal (or "indirect")
IO is being used. Hence when the SG_FLAG_DIRECT_IO or SG_FLAG_MMAP_IO are
set in 'flags' then 'iovec_count' should be zero.
The type of iovec_count is unsigned short.