Commit 95b05a7d authored by Boaz Harrosh's avatar Boaz Harrosh Committed by James Bottomley

[SCSI] osd_uld: OSD scsi ULD

Add a Linux driver module that registers as a SCSI ULD and probes
for OSD type SCSI devices.

When an OSD-type SCSI device is found a character device is created
in the form of /dev/osdX - where X goes from 0 up to hard coded 64.
The Major character device number used is 260.
Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
Reviewed-by: default avatarBenny Halevy <bhalevy@panasas.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 02941a53
...@@ -17,6 +17,9 @@ ifneq ($(OSD_INC),) ...@@ -17,6 +17,9 @@ ifneq ($(OSD_INC),)
CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_INITIATOR=m
ccflags-y += -DCONFIG_SCSI_OSD_INITIATOR -DCONFIG_SCSI_OSD_INITIATOR_MODULE ccflags-y += -DCONFIG_SCSI_OSD_INITIATOR -DCONFIG_SCSI_OSD_INITIATOR_MODULE
CONFIG_SCSI_OSD_ULD=m
ccflags-y += -DCONFIG_SCSI_OSD_ULD -DCONFIG_SCSI_OSD_ULD_MODULE
# Uncomment to turn debug on # Uncomment to turn debug on
# ccflags-y += -DCONFIG_SCSI_OSD_DEBUG # ccflags-y += -DCONFIG_SCSI_OSD_DEBUG
...@@ -30,3 +33,7 @@ endif ...@@ -30,3 +33,7 @@ endif
# libosd.ko - osd-initiator library # libosd.ko - osd-initiator library
libosd-y := osd_initiator.o libosd-y := osd_initiator.o
obj-$(CONFIG_SCSI_OSD_INITIATOR) += libosd.o obj-$(CONFIG_SCSI_OSD_INITIATOR) += libosd.o
# osd.ko - SCSI ULD and char-device
osd-y := osd_uld.o
obj-$(CONFIG_SCSI_OSD_ULD) += osd.o
This diff is collapsed.
...@@ -33,6 +33,12 @@ struct osd_dev { ...@@ -33,6 +33,12 @@ struct osd_dev {
unsigned def_timeout; unsigned def_timeout;
}; };
/* Add/remove test ioctls from external modules */
typedef int (do_test_fn)(struct osd_dev *od, unsigned cmd, unsigned long arg);
int osduld_register_test(unsigned ioctl, do_test_fn *do_test);
void osduld_unregister_test(unsigned ioctl);
/* These are called by uld at probe time */
void osd_dev_init(struct osd_dev *od, struct scsi_device *scsi_device); void osd_dev_init(struct osd_dev *od, struct scsi_device *scsi_device);
void osd_dev_fini(struct osd_dev *od); void osd_dev_fini(struct osd_dev *od);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment