Re: the joy of scsi headers and glibc...

Andreas Jaeger (aj@suse.de)
07 Nov 1999 17:46:14 +0100


>>>>> Douglas Gilbert writes:

>> > Now, the question that I have is... What in the name of god am I to do?
>> Well, roughly speaking glibc and Debian and recent RedHat and recent SuSE
>> are right, and the author of scsi-generic.txt is mistaken.
>>
>> [One does not recompile all one's software when upgrading kernels.
>> Apparently ordinary software is independent of the includes used.
>> In case the includes really do matter, one gives -I<some-linux-include-dir>
>> to get the includes from one particular kernel version (and then knows
>> that the program obtained that way may break when another kernel is used).>]
>>
>> Note that including linux kernel includes is meaningful only to get
>> kernel interface definitions. In particular, if one only needs constants
>> defined in the SCSI standard then a private include file is just as well
>> as <linux/../scsi/scsi.h>.

Douglas> If a Linux header file in the /usr/src/linux/include area
Douglas> does not want the users to access a section programmatically
Douglas> then it is surrounded by #ifdef __KERNEL__ ... #endif. Note
Douglas> that there are 2 scsi.h files in the Linux kernel:
Douglas> /usr/src/linux/include/scsi/scsi.h [for public consumption]
Douglas> /usr/src/linux/drivers/scsi/scsi.h [for internal consumption]

Douglas> The /usr/src/linux/include/scsi directory contains 4 files (not
Douglas> 1 or 2 as the GNU glibc library seems to think). They are:
Douglas> scsi.h
Douglas> scsi_ioctl.h
Douglas> scsicam.h
Douglas> sg.h

scsi_ioctl.h contains a few constants - you're right they should be
added to glibc. I'll prepare a patch for glibc.

But AFAIU scsicam.h doesn't contain anything that it's usable from
userland.

Douglas> For instance one needs scsi_ioctl.h if one wishes to use
Douglas> the SCSI_IOCTL_SEND_COMMAND ioctl(). Also note that these
Douglas> files are (slightly) different between Linux kernel 2.2.13
Douglas> and 2.3.25 .
Only sg.h is different.

Andreas

-- 
 Andreas Jaeger   
  SuSE Labs aj@suse.de	
   private aj@arthur.rhein-neckar.de

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/