Earlier versions of the sg device driver either have no version number
(e.g. the original driver) or a version number starting with "2". The
drivers that support this new interface have a major version number of
"3". The sg version numbers are of the form "x.y.z" and the single number
given by the SG_GET_VERSION_NUM ioctl() is calculated by
(x * 10000 + y * 100 + z). The sg driver discussed here will yield a
number greater than or equal to 30000 from SG_GET_VERSION_NUM. The version
number can also be seen using cat /proc/scsi/sg/version
in the new driver. This document describes sg version 3.1.24 for the
lk 2.4 series. Where some facility has been added during the lk 2.4
series (e.g. mmap-ed IO) and hence is not available in all versions
of the lk 2.4 series, this is noted.
[1]
Here is a list of sg versions that have appeared to date during the
lk 2.4 series.
lk 2.4.0 : sg version 3.1.17
lk 2.4.7 : sg version 3.1.19 [see include/scsi/sg.h in
that or a later version for the changelog]
lk 2.4.10 : sg version 3.1.20 [This version had several changes put into
it by third parties over the next 6 release kernel versions.]
lk 2.4.17 : sg version 3.1.22
lk 2.4.19 : sg version 3.1.24 [lk 2.4.19 hasn't been released at the time
of writing. It will most likely contains sg version 3.1.24 .]