diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_def.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 103 |
1 files changed, 2 insertions, 101 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index b153d64bb966..7d47b8d92047 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -241,6 +241,7 @@ typedef struct srb { | |||
241 | struct list_head list; | 241 | struct list_head list; |
242 | 242 | ||
243 | struct scsi_qla_host *ha; /* HA the SP is queued on */ | 243 | struct scsi_qla_host *ha; /* HA the SP is queued on */ |
244 | struct fc_port *fcport; | ||
244 | 245 | ||
245 | struct scsi_cmnd *cmd; /* Linux SCSI command pkt */ | 246 | struct scsi_cmnd *cmd; /* Linux SCSI command pkt */ |
246 | 247 | ||
@@ -251,11 +252,6 @@ typedef struct srb { | |||
251 | /* Request state */ | 252 | /* Request state */ |
252 | uint16_t state; | 253 | uint16_t state; |
253 | 254 | ||
254 | /* Target/LUN queue pointers. */ | ||
255 | struct os_tgt *tgt_queue; /* ptr to visible ha's target */ | ||
256 | struct os_lun *lun_queue; /* ptr to visible ha's lun */ | ||
257 | struct fc_lun *fclun; /* FC LUN context pointer. */ | ||
258 | |||
259 | /* Timing counts. */ | 255 | /* Timing counts. */ |
260 | unsigned long e_start; /* Start of extend timeout */ | 256 | unsigned long e_start; /* Start of extend timeout */ |
261 | unsigned long r_start; /* Start of request */ | 257 | unsigned long r_start; /* Start of request */ |
@@ -1603,73 +1599,6 @@ typedef struct { | |||
1603 | } rpt_lun_cmd_rsp_t; | 1599 | } rpt_lun_cmd_rsp_t; |
1604 | 1600 | ||
1605 | /* | 1601 | /* |
1606 | * SCSI Target Queue structure | ||
1607 | */ | ||
1608 | typedef struct os_tgt { | ||
1609 | struct os_lun *olun[MAX_LUNS]; /* LUN context pointer. */ | ||
1610 | struct fc_port *fcport; | ||
1611 | unsigned long flags; | ||
1612 | uint8_t port_down_retry_count; | ||
1613 | uint32_t down_timer; | ||
1614 | struct scsi_qla_host *ha; | ||
1615 | |||
1616 | /* Persistent binding information */ | ||
1617 | port_id_t d_id; | ||
1618 | uint8_t node_name[WWN_SIZE]; | ||
1619 | uint8_t port_name[WWN_SIZE]; | ||
1620 | } os_tgt_t; | ||
1621 | |||
1622 | /* | ||
1623 | * SCSI Target Queue flags | ||
1624 | */ | ||
1625 | #define TQF_ONLINE 0 /* Device online to OS. */ | ||
1626 | #define TQF_SUSPENDED 1 | ||
1627 | #define TQF_RETRY_CMDS 2 | ||
1628 | |||
1629 | /* | ||
1630 | * SCSI LUN Queue structure | ||
1631 | */ | ||
1632 | typedef struct os_lun { | ||
1633 | struct fc_lun *fclun; /* FC LUN context pointer. */ | ||
1634 | spinlock_t q_lock; /* Lun Lock */ | ||
1635 | |||
1636 | unsigned long q_flag; | ||
1637 | #define LUN_MPIO_RESET_CNTS 1 /* Lun */ | ||
1638 | #define LUN_MPIO_BUSY 2 /* Lun is changing paths */ | ||
1639 | #define LUN_EXEC_DELAYED 7 /* Lun execution is delayed */ | ||
1640 | |||
1641 | u_long q_timeout; /* total command timeouts */ | ||
1642 | atomic_t q_timer; /* suspend timer */ | ||
1643 | uint32_t q_count; /* current count */ | ||
1644 | uint32_t q_max; /* maxmum count lun can be suspended */ | ||
1645 | uint8_t q_state; /* lun State */ | ||
1646 | #define LUN_STATE_READY 1 /* lun is ready for i/o */ | ||
1647 | #define LUN_STATE_RUN 2 /* lun has a timer running */ | ||
1648 | #define LUN_STATE_WAIT 3 /* lun is suspended */ | ||
1649 | #define LUN_STATE_TIMEOUT 4 /* lun has timed out */ | ||
1650 | |||
1651 | u_long io_cnt; /* total xfer count since boot */ | ||
1652 | u_long out_cnt; /* total outstanding IO count */ | ||
1653 | u_long w_cnt; /* total writes */ | ||
1654 | u_long r_cnt; /* total reads */ | ||
1655 | u_long avg_time; /* */ | ||
1656 | } os_lun_t; | ||
1657 | |||
1658 | |||
1659 | /* LUN BitMask structure definition, array of 32bit words, | ||
1660 | * 1 bit per lun. When bit == 1, the lun is masked. | ||
1661 | * Most significant bit of mask[0] is lun 0, bit 24 is lun 7. | ||
1662 | */ | ||
1663 | typedef struct lun_bit_mask { | ||
1664 | /* Must allocate at least enough bits to accomodate all LUNs */ | ||
1665 | #if ((MAX_FIBRE_LUNS & 0x7) == 0) | ||
1666 | uint8_t mask[MAX_FIBRE_LUNS >> 3]; | ||
1667 | #else | ||
1668 | uint8_t mask[(MAX_FIBRE_LUNS + 8) >> 3]; | ||
1669 | #endif | ||
1670 | } lun_bit_mask_t; | ||
1671 | |||
1672 | /* | ||
1673 | * Fibre channel port type. | 1602 | * Fibre channel port type. |
1674 | */ | 1603 | */ |
1675 | typedef enum { | 1604 | typedef enum { |
@@ -1686,8 +1615,6 @@ typedef struct lun_bit_mask { | |||
1686 | */ | 1615 | */ |
1687 | typedef struct fc_port { | 1616 | typedef struct fc_port { |
1688 | struct list_head list; | 1617 | struct list_head list; |
1689 | struct list_head fcluns; | ||
1690 | |||
1691 | struct scsi_qla_host *ha; | 1618 | struct scsi_qla_host *ha; |
1692 | struct scsi_qla_host *vis_ha; /* only used when suspending lun */ | 1619 | struct scsi_qla_host *vis_ha; /* only used when suspending lun */ |
1693 | 1620 | ||
@@ -1702,8 +1629,7 @@ typedef struct fc_port { | |||
1702 | atomic_t state; | 1629 | atomic_t state; |
1703 | uint32_t flags; | 1630 | uint32_t flags; |
1704 | 1631 | ||
1705 | os_tgt_t *tgt_queue; | 1632 | unsigned int os_target_id; |
1706 | uint16_t os_target_id; | ||
1707 | 1633 | ||
1708 | uint16_t iodesc_idx_sent; | 1634 | uint16_t iodesc_idx_sent; |
1709 | 1635 | ||
@@ -1717,7 +1643,6 @@ typedef struct fc_port { | |||
1717 | uint8_t mp_byte; /* multi-path byte (not used) */ | 1643 | uint8_t mp_byte; /* multi-path byte (not used) */ |
1718 | uint8_t cur_path; /* current path id */ | 1644 | uint8_t cur_path; /* current path id */ |
1719 | 1645 | ||
1720 | lun_bit_mask_t lun_mask; | ||
1721 | struct fc_rport *rport; | 1646 | struct fc_rport *rport; |
1722 | } fc_port_t; | 1647 | } fc_port_t; |
1723 | 1648 | ||
@@ -1765,25 +1690,6 @@ typedef struct fc_port { | |||
1765 | #define FC_NO_LOOP_ID 0x1000 | 1690 | #define FC_NO_LOOP_ID 0x1000 |
1766 | 1691 | ||
1767 | /* | 1692 | /* |
1768 | * Fibre channel LUN structure. | ||
1769 | */ | ||
1770 | typedef struct fc_lun { | ||
1771 | struct list_head list; | ||
1772 | |||
1773 | fc_port_t *fcport; | ||
1774 | fc_port_t *o_fcport; | ||
1775 | uint16_t lun; | ||
1776 | atomic_t state; | ||
1777 | uint8_t device_type; | ||
1778 | |||
1779 | uint8_t max_path_retries; | ||
1780 | uint32_t flags; | ||
1781 | } fc_lun_t; | ||
1782 | |||
1783 | #define FLF_VISIBLE_LUN BIT_0 | ||
1784 | #define FLF_ACTIVE_LUN BIT_1 | ||
1785 | |||
1786 | /* | ||
1787 | * FC-CT interface | 1693 | * FC-CT interface |
1788 | * | 1694 | * |
1789 | * NOTE: All structures are big-endian in form. | 1695 | * NOTE: All structures are big-endian in form. |
@@ -2253,9 +2159,6 @@ typedef struct scsi_qla_host { | |||
2253 | struct io_descriptor io_descriptors[MAX_IO_DESCRIPTORS]; | 2159 | struct io_descriptor io_descriptors[MAX_IO_DESCRIPTORS]; |
2254 | uint16_t iodesc_signature; | 2160 | uint16_t iodesc_signature; |
2255 | 2161 | ||
2256 | /* OS target queue pointers. */ | ||
2257 | os_tgt_t *otgt[MAX_FIBRE_DEVICES]; | ||
2258 | |||
2259 | /* RSCN queue. */ | 2162 | /* RSCN queue. */ |
2260 | uint32_t rscn_queue[MAX_RSCN_COUNT]; | 2163 | uint32_t rscn_queue[MAX_RSCN_COUNT]; |
2261 | uint8_t rscn_in_ptr; | 2164 | uint8_t rscn_in_ptr; |
@@ -2400,8 +2303,6 @@ typedef struct scsi_qla_host { | |||
2400 | #define LOOP_RDY(ha) (!LOOP_NOT_READY(ha)) | 2303 | #define LOOP_RDY(ha) (!LOOP_NOT_READY(ha)) |
2401 | 2304 | ||
2402 | #define TGT_Q(ha, t) (ha->otgt[t]) | 2305 | #define TGT_Q(ha, t) (ha->otgt[t]) |
2403 | #define LUN_Q(ha, t, l) (TGT_Q(ha, t)->olun[l]) | ||
2404 | #define GET_LU_Q(ha, t, l) ((TGT_Q(ha,t) != NULL)? TGT_Q(ha, t)->olun[l] : NULL) | ||
2405 | 2306 | ||
2406 | #define to_qla_host(x) ((scsi_qla_host_t *) (x)->hostdata) | 2307 | #define to_qla_host(x) ((scsi_qla_host_t *) (x)->hostdata) |
2407 | 2308 | ||