cvs commit: src/sys/cam/scsi scsi_sg.c scsi_sg.h
src/sys/modules/cam Makefile src/sys/conf NOTES files src/sys/compat/linux
mjacob at freebsd.org
mjacob at freebsd.org
Sun Apr 8 01:01:21 UTC 2007
Oh, agreed that it's unpleasant. Better than Solaris tho.
By doing this you may have made FreeBSD a viable choice with respect to
storagse. There are a lot of management tools for linux storage that use
the sg interfaces. Bravo.
> To tell you the truth, the SG device has one of the worst programming
> interfaces that I've ever seen. Even the various official docs on it
> complain about how bad it is. I've written apps for CAM, including a
> swiss-army-knife java-based management app, and CAM is vastly superior.
> I tried porting the app to linux and gave up due to how limited and
> unpleasant it was. From the kernel side, it's even scarier.
> But beyond that, the work I committed here was about opening up FreeBSD
> to more storage management opportunities. So I'm happy with whatever
> anyone wants to do with it that furthers that goal. I'd like to see
> the native interface be used as a bridge to help introduce programmers
> to FreeBSD and CAM; if the sg3_utils package is a step in that
> direction or if it provides tools that camcontrol doesn't, then go for
> mjacob at freebsd.org wrote:
>> Cool- does this mean we should commit sg3_utils to ports then?
>> On Sat, 7 Apr 2007, Scott Long wrote:
>>> scottl 2007-04-07 19:40:58 UTC
>>> FreeBSD src repository
>>> Modified files:
>>> sys/modules/cam Makefile
>>> sys/conf files NOTES
>>> sys/compat/linux linux_ioctl.c linux_ioctl.h
>>> Added files:
>>> sys/cam/scsi scsi_sg.c scsi_sg.h
>>> Add the CAM 'SG' peripheral device. This device implements a subset of
>>> Linux SCSI SG passthrough device API. The intention is to allow for both
>>> running of Linux apps that want to talk to /dev/sg* nodes, and to
>>> porting of apps from Linux to FreeBSD. As such, both native and
>>> entry points and definitions are provided.
>>> - This does not support the procfs and sysfs nodes that the Linux SG
>>> driver provides. Some Linux apps may rely on these for operation,
>>> others may only use them for informational purposes.
>>> - More ioctls need to be implemented.
>>> - Linux uses a naming scheme of "sg[a-z]" for devices, while FreeBSD
>>> uses a
>>> scheme of "sg[0-9]". Devfs aliasis (symlinks) are automatically
>>> to link the two together. However, tools like camcontrol only see the
>>> native names.
>>> - Some operations were originally designed to return byte counts or
>>> data directly as the syscall return value. The linuxolator doesn't
>>> to support this well, so this driver just punts for these cases.
>>> Now that the driver is in place, others are welcome to add missing
>>> functionality. Thanks to Roman Divacky for pushing this work along.
>>> Revision Changes Path
>>> 1.1 +987 -0 src/sys/cam/scsi/scsi_sg.c (new)
>>> 1.1 +139 -0 src/sys/cam/scsi/scsi_sg.h (new)
>>> 1.138 +27 -0 src/sys/compat/linux/linux_ioctl.c
>>> 1.25 +34 -0 src/sys/compat/linux/linux_ioctl.h
>>> 1.1419 +5 -0 src/sys/conf/NOTES
>>> 1.1191 +1 -0 src/sys/conf/files
>>> 1.15 +1 -0 src/sys/modules/cam/Makefile
More information about the cvs-all