From owner-cvs-all@FreeBSD.ORG Sat Apr 7 19:40:59 2007 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 087D116A401; Sat, 7 Apr 2007 19:40:59 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id ECE8E13C458; Sat, 7 Apr 2007 19:40:58 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l37Jewd6013722; Sat, 7 Apr 2007 19:40:58 GMT (envelope-from scottl@repoman.freebsd.org) Received: (from scottl@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l37Jew2t013708; Sat, 7 Apr 2007 19:40:58 GMT (envelope-from scottl) Message-Id: <200704071940.l37Jew2t013708@repoman.freebsd.org> From: Scott Long Date: Sat, 7 Apr 2007 19:40:58 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: 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 X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Apr 2007 19:40:59 -0000 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