changeset 3410:fb9ffc9fee48

PSARC 2006/621 mpxio path steering 6481882 provide a mechanism for issuing path specific SCSI commands
author cm136836
date Thu, 11 Jan 2007 21:32:15 -0800
parents 95e86faf5436
children ea61bbfa626e
files usr/src/uts/common/sys/scsi/adapters/mpapi_impl.h usr/src/uts/common/sys/scsi/adapters/mpapi_scsi_vhci.h
diffstat 2 files changed, 15 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/sys/scsi/adapters/mpapi_impl.h	Thu Jan 11 18:55:09 2007 -0800
+++ b/usr/src/uts/common/sys/scsi/adapters/mpapi_impl.h	Thu Jan 11 21:32:15 2007 -0800
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -277,6 +277,15 @@
 	uint64_t	tpgId;
 } mp_lu_tpg_pair_t;
 
+/* used for uscsi commmands */
+typedef struct mp_uscsi_cmd {
+	struct scsi_address	*ap;		/* address of the path */
+	struct uscsi_cmd	*uscmdp;	/* uscsi command */
+	struct buf		*cmdbp;		/* original buffer */
+	struct buf		*rqbp;		/* auto-rqsense packet */
+	mdi_pathinfo_t		*pip;		/* path information */
+	int			arq_enabled;	/* auto-rqsense enable flag */
+}mp_uscsi_cmd_t;
 
 /*
  * Structure used as input to
@@ -398,7 +407,8 @@
 #define	MP_GET_PROPRIETARY_LOADBALANCE_LIST	(MP_SUB_CMD + 0x17)
 #define	MP_GET_PROPRIETARY_LOADBALANCE_PROP	(MP_SUB_CMD + 0x18)
 #define	MP_ASSIGN_LU_TO_TPG			(MP_SUB_CMD + 0x19)
-#define	MP_API_SUBCMD_MAX			(MP_ASSIGN_LU_TO_TPG)
+#define	MP_SEND_SCSI_CMD			(MP_SUB_CMD + 0x1a)
+#define	MP_API_SUBCMD_MAX			(MP_SEND_SCSI_CMD)
 
 
 /*
@@ -413,6 +423,7 @@
 #define	MP_DRVR_PATH_UNAVAILABLE		(MP_IOCTL_ERROR_START + 5)
 #define	MP_DRVR_IDS_NOT_ASSOCIATED		(MP_IOCTL_ERROR_START + 6)
 #define	MP_DRVR_ILLEGAL_ACCESS_STATE_REQUEST	(MP_IOCTL_ERROR_START + 7)
+#define	MP_DRVR_IO_ERROR			(MP_IOCTL_ERROR_START + 8)
 
 /*
  * Macros for OID operations
--- a/usr/src/uts/common/sys/scsi/adapters/mpapi_scsi_vhci.h	Thu Jan 11 18:55:09 2007 -0800
+++ b/usr/src/uts/common/sys/scsi/adapters/mpapi_scsi_vhci.h	Thu Jan 11 21:32:15 2007 -0800
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -70,6 +70,7 @@
 typedef	struct mpapi_item {
 	mpoid_t			oid;
 	void			*idata; /* item data */
+	kmutex_t		item_mutex;
 } mpapi_item_t;
 
 typedef	struct mpapi_item_list {