PERFORCE change 119265 for review
Matt Jacob
mjacob at FreeBSD.org
Sat May 5 05:11:17 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=119265
Change 119265 by mjacob at mjexp on 2007/05/05 05:10:51
Add a GETDLIST operation (to get visible WWNs)
Affected files ...
.. //depot/projects/mjexp/sys/dev/isp/isp_tpublic.h#6 edit
Differences ...
==== //depot/projects/mjexp/sys/dev/isp/isp_tpublic.h#6 (text+ko) ====
@@ -54,6 +54,7 @@
QIN_HBA_REG=99, /* the argument is a pointer to a hba_register_t */
QIN_GETINFO, /* the argument is a pointer to a info_t */
QIN_SETINFO, /* the argument is a pointer to a info_t */
+ QIN_GETDLIST, /* the argument is a pointer to a fc_dlist_t */
QIN_ENABLE, /* the argument is a pointer to a enadis_t */
QIN_DISABLE, /* the argument is a pointer to a enadis_t */
QIN_TMD_CONT, /* the argument is a pointer to a tmd_cmd_t */
@@ -72,7 +73,7 @@
* in, and the external module to call back with a QIN_HBA_REG that
* passes back the corresponding information.
*/
-#define QR_VERSION 15
+#define QR_VERSION 16
typedef struct {
/* NB: tags from here to r_version must never change */
void * r_identity;
@@ -87,8 +88,7 @@
} hba_register_t;
/*
- * An information structure that is used to get or set per-channel
- * transport layer parameters.
+ * An information structure that is used to get or set per-channel transport layer parameters.
*/
typedef struct {
void * i_identity;
@@ -109,6 +109,16 @@
} info_t;
/*
+ * An information structure to return a list of logged in WWPNs. FC specific.
+ */
+typedef struct {
+ void * d_identity;
+ int d_channel;
+ int d_error;
+ int d_count;
+ uint64_t * d_wwpns;
+} fc_dlist_t;
+/*
* Notify structure
*/
typedef enum {
@@ -324,12 +334,14 @@
#define L0LUN_TO_FLATLUN(lptr) ((((lptr)[0] & 0x3f) << 8) | ((lptr)[1]))
#define FLATLUN_TO_L0LUN(lptr, lun) \
- (lptr)[1] = lun; \
+ (lptr)[1] = lun & 0xff; \
if (sizeof (lun) == 1) { \
(lptr)[0] = 0; \
} else { \
- int nl = (lun); \
- if (nl < 256) { \
+ uint16_t nl = lun; \
+ if (nl == LUN_ANY) { \
+ (lptr)[0] = (nl >> 8) & 0xff; \
+ } else if (nl < 256) { \
(lptr)[0] = 0; \
} else { \
(lptr)[0] = 0x40 | ((nl >> 8) & 0x3f); \
More information about the p4-projects
mailing list