diff options
Diffstat (limited to 'sys/dev/isp/isp_ioctl.h')
-rw-r--r-- | sys/dev/isp/isp_ioctl.h | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/sys/dev/isp/isp_ioctl.h b/sys/dev/isp/isp_ioctl.h index b52c6f1..8fda052 100644 --- a/sys/dev/isp/isp_ioctl.h +++ b/sys/dev/isp/isp_ioctl.h @@ -54,6 +54,8 @@ * This ioctl performs a reset and then will set the adapter to the * role that was passed in (the old role will be returned). It almost * goes w/o saying: use with caution. + * + * Channel selector stored in bits 8..32 as input to driver. */ #define ISP_SETROLE _IOWR(ISP_IOC, 4, int) @@ -64,6 +66,7 @@ /* * Get the current adapter role + * Channel selector passed in first argument. */ #define ISP_GETROLE _IOR(ISP_IOC, 5, int) @@ -107,8 +110,9 @@ typedef struct { * only), 24 bit Port ID and Node and Port WWNs. */ struct isp_fc_device { - uint32_t loopid; /* 0..255 */ - uint32_t : 6, + uint32_t loopid; /* 0..255,2047 */ + uint32_t + chan : 6, role : 2, portid : 24; /* 24 bit Port ID */ uint64_t node_wwn; @@ -129,18 +133,16 @@ struct isp_fc_device { struct isp_hba_device { uint32_t : 8, - : 4, fc_speed : 4, /* Gbps */ - : 2, - fc_class2 : 1, - fc_ip_supported : 1, - fc_scsi_supported : 1, + : 1, fc_topology : 3, - fc_loopid : 8; + fc_channel : 8, + fc_loopid : 16; uint8_t fc_fw_major; uint8_t fc_fw_minor; uint8_t fc_fw_micro; - uint8_t reserved; + uint8_t fc_nchannels; /* number of supported channels */ + uint16_t fc_nports; /* number of supported ports */ uint64_t nvram_node_wwn; uint64_t nvram_port_wwn; uint64_t active_node_wwn; @@ -153,14 +155,16 @@ struct isp_hba_device { #define ISP_TOPO_NPORT 3 /* N-port */ #define ISP_TOPO_FPORT 4 /* F-port */ -#define ISP_FC_GETHINFO _IOR(ISP_IOC, 12, struct isp_hba_device) +/* don't use 12 any more */ +#define ISP_FC_GETHINFO _IOWR(ISP_IOC, 13, struct isp_hba_device) /* * Various Reset Goodies */ struct isp_fc_tsk_mgmt { - uint32_t loopid; /* 0..255 */ - uint32_t lun; + uint32_t loopid; /* 0..255/2048 */ + uint16_t lun; + uint16_t chan; enum { IPT_CLEAR_ACA, IPT_TARGET_RESET, @@ -169,4 +173,18 @@ struct isp_fc_tsk_mgmt { IPT_ABORT_TASK_SET } action; }; -#define ISP_TSK_MGMT _IOWR(ISP_IOC, 97, struct isp_fc_tsk_mgmt) +/* don't use 97 any more */ +#define ISP_TSK_MGMT _IOWR(ISP_IOC, 98, struct isp_fc_tsk_mgmt) + +/* + * Just gimme a list of WWPNs that are logged into us. + */ +typedef struct { + uint16_t count; + uint16_t channel; + struct wwnpair { + uint64_t wwnn; + uint64_t wwpn; + } wwns[1]; +} isp_dlist_t; +#define ISP_FC_GETDLIST _IO(ISP_IOC, 14) |