This value is designed to convey useful information back to the user
about the associated request. This information does not necessarily
indicate an error. Several single bit and multi-bit fields are "or-ed"
together to make this value.
A single bit component contained in SG_INFO_OK_MASK indicates whether
some error or status field is non-zero. If either 'masked_status',
'host_status' or 'driver_status' are non-zero then SG_INFO_CHECK is
set. The associated values are:
SG_INFO_OK_MASK [0x1]
SG_INFO_OK [0x0] no sense, host nor driver "noise"
SG_INFO_CHECK [0x1] something abnormal happened. In most but not all
cases, the sense buffer will be written. If the sense buffer has
not been written than 'sb_len_wr' will be zero. This flag indicates
either 'masked_status', 'host_status' or 'driver_status' is
non-zero.
A multi bit component contained in SG_INFO_DIRECT_IO_MASK indicates
what type of data transfer has just taken place. If indirect IO (or
no data transfer) has taken place then SG_INFO_INDIRECT_IO is matched.
Note that even if direct IO was requested in 'flags' the driver may
choose to do indirect IO instead. If direct IO was requested and
performed then SG_INFO_DIRECT_IO will be matched. Currently
SG_INFO_MIXED_IO is never set. The associated values are:
SG_INFO_DIRECT_IO_MASK [0x6]
SG_INFO_INDIRECT_IO [0x0] data xfer via kernel buffers (or no xfer)
SG_INFO_DIRECT_IO [0x2]
SG_INFO_MIXED_IO [0x4] part direct, part indirect IO
The type of info is unsigned int .