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 linux_ioctl.c linux_ioctl.h

Kenneth D. Merry ken at kdm.org
Mon Apr 9 17:19:19 UTC 2007


That's a pretty neat trick!  Thanks Scott!

For what it's worth, Doug Gilbert already ported sg3_utils and sdparm to
CAM a while back.  I see a message from him to -scsi in March, 2006,
announcing it.

Ken

On Sat, Apr 07, 2007 at 18:02:12 -0600, Scott Long wrote:
> 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
> it.
> 
> Scott
> 
> 
> 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
> >> Log:
> >> Add the CAM 'SG' peripheral device.  This device implements a subset 
> >>of the
> >> 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 
> >>facilitate
> >> porting of apps from Linux to FreeBSD.  As such, both native and 
> >>linuxolator
> >> entry points and definitions are provided.
> >>
> >> Caveats:
> >>  - 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 
> >>created
> >>    to link the two together.  However, tools like camcontrol only see 
> >>the
> >>    native names.
> >>  - Some operations were originally designed to return byte counts or 
> >>other
> >>    data directly as the syscall return value.  The linuxolator 
> >>doesn't appear
> >>    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
> >>

-- 
Kenneth Merry
ken at kdm.org


More information about the cvs-src mailing list