patch-2.4.4 linux/drivers/scsi/scsi_ioctl.c
Next file: linux/drivers/scsi/scsi_scan.c
Previous file: linux/drivers/scsi/scsi.c
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
Fri Apr 27 13:59:19 2001
- Orig file:
v2.4.3/linux/drivers/scsi/scsi_ioctl.c
- Orig date:
Sun Feb 4 10:05:30 2001
diff -u --recursive --new-file v2.4.3/linux/drivers/scsi/scsi_ioctl.c linux/drivers/scsi/scsi_ioctl.c
@@ -352,6 +352,26 @@
}
/*
+ * The scsi_ioctl_get_pci() function places into arg the value
+ * pci_dev::slot_name (8 characters) for the PCI device (if any).
+ * Returns: 0 on success
+ * -ENXIO if there isn't a PCI device pointer
+ * (could be because the SCSI driver hasn't been
+ * updated yet, or because it isn't a SCSI
+ * device)
+ * any copy_to_user() error on failure there
+ */
+static int
+scsi_ioctl_get_pci(Scsi_Device * dev, void *arg)
+{
+
+ if (!dev->host->pci_dev) return -ENXIO;
+ return copy_to_user(arg, dev->host->pci_dev->slot_name,
+ sizeof(dev->host->pci_dev->slot_name));
+}
+
+
+/*
* the scsi_ioctl() function differs from most ioctls in that it does
* not take a major/minor number as the dev field. Rather, it takes
* a pointer to a scsi_devices[] element, a structure.
@@ -453,6 +473,9 @@
return ioctl_internal_command((Scsi_Device *) dev, scsi_cmd,
START_STOP_TIMEOUT, NORMAL_RETRIES);
break;
+ case SCSI_IOCTL_GET_PCI:
+ return scsi_ioctl_get_pci(dev, arg);
+ break;
default:
if (dev->host->hostt->ioctl)
return dev->host->hostt->ioctl(dev, cmd, arg);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)