Print this page
First pass at 4310


 882 #endif
 883                 } sasaddr;
 884         } un;
 885 
 886         uint8_t                 m_num_phys;             /* # of PHYs */
 887         mptsas_phy_info_t       m_phy_info[MPTSAS_MAX_PHYS];
 888         uint8_t                 m_port_chng;    /* initiator port changes */
 889         MPI2_CONFIG_PAGE_MAN_0   m_MANU_page0;   /* Manufactor page 0 info */
 890         MPI2_CONFIG_PAGE_MAN_1   m_MANU_page1;   /* Manufactor page 1 info */
 891 
 892         /* FMA Capabilities */
 893         int                     m_fm_capabilities;
 894         ddi_taskq_t             *m_dr_taskq;
 895         int                     m_mpxio_enable;
 896         uint8_t                 m_done_traverse_dev;
 897         uint8_t                 m_done_traverse_smp;
 898         int                     m_diag_action_in_progress;
 899         uint16_t                m_dev_handle;
 900         uint16_t                m_smp_devhdl;
 901 



 902         /*
 903          * Event recording
 904          */
 905         uint8_t                 m_event_index;
 906         uint32_t                m_event_number;
 907         uint32_t                m_event_mask[4];
 908         mptsas_event_entry_t    m_events[MPTSAS_EVENT_QUEUE_SIZE];
 909 
 910         /*
 911          * FW diag Buffer List
 912          */
 913         mptsas_fw_diagnostic_buffer_t
 914                 m_fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_COUNT];
 915 
 916         /* GEN3 support */
 917         uint8_t                 m_MPI25;
 918 
 919         /*
 920          * Event Replay flag (MUR support)
 921          */


1310 int mptsas_send_extended_config_request_msg(mptsas_t *mpt, uint8_t action,
1311     uint8_t extpagetype, uint32_t pageaddress, uint8_t pagenumber,
1312     uint8_t pageversion, uint16_t extpagelength,
1313     uint32_t SGEflagslength, uint64_t SGEaddress);
1314 
1315 int mptsas_request_from_pool(mptsas_t *mpt, mptsas_cmd_t **cmd,
1316     struct scsi_pkt **pkt);
1317 void mptsas_return_to_pool(mptsas_t *mpt, mptsas_cmd_t *cmd);
1318 void mptsas_destroy_ioc_event_cmd(mptsas_t *mpt);
1319 void mptsas_start_config_page_access(mptsas_t *mpt, mptsas_cmd_t *cmd);
1320 int mptsas_access_config_page(mptsas_t *mpt, uint8_t action, uint8_t page_type,
1321     uint8_t page_number, uint32_t page_address, int (*callback) (mptsas_t *,
1322     caddr_t, ddi_acc_handle_t, uint16_t, uint32_t, va_list), ...);
1323 
1324 int mptsas_ioc_task_management(mptsas_t *mpt, int task_type,
1325     uint16_t dev_handle, int lun, uint8_t *reply, uint32_t reply_size,
1326     int mode);
1327 int mptsas_send_event_ack(mptsas_t *mpt, uint32_t event, uint32_t eventcntx);
1328 void mptsas_send_pending_event_ack(mptsas_t *mpt);
1329 void mptsas_set_throttle(struct mptsas *mpt, mptsas_target_t *ptgt, int what);

1330 int mptsas_restart_ioc(mptsas_t *mpt);
1331 void mptsas_update_driver_data(struct mptsas *mpt);
1332 uint64_t mptsas_get_sata_guid(mptsas_t *mpt, mptsas_target_t *ptgt, int lun);
1333 
1334 /*
1335  * init functions
1336  */
1337 int mptsas_ioc_get_facts(mptsas_t *mpt);
1338 int mptsas_ioc_get_port_facts(mptsas_t *mpt, int port);
1339 int mptsas_ioc_enable_port(mptsas_t *mpt);
1340 int mptsas_ioc_enable_event_notification(mptsas_t *mpt);
1341 int mptsas_ioc_init(mptsas_t *mpt);
1342 
1343 /*
1344  * configuration pages operation
1345  */
1346 int mptsas_get_sas_device_page0(mptsas_t *mpt, uint32_t page_address,
1347     uint16_t *dev_handle, uint64_t *sas_wwn, uint32_t *dev_info,
1348     uint8_t *physport, uint8_t *phynum, uint16_t *pdevhandle,
1349     uint16_t *slot_num, uint16_t *enclosure, uint16_t *io_flags);




 882 #endif
 883                 } sasaddr;
 884         } un;
 885 
 886         uint8_t                 m_num_phys;             /* # of PHYs */
 887         mptsas_phy_info_t       m_phy_info[MPTSAS_MAX_PHYS];
 888         uint8_t                 m_port_chng;    /* initiator port changes */
 889         MPI2_CONFIG_PAGE_MAN_0   m_MANU_page0;   /* Manufactor page 0 info */
 890         MPI2_CONFIG_PAGE_MAN_1   m_MANU_page1;   /* Manufactor page 1 info */
 891 
 892         /* FMA Capabilities */
 893         int                     m_fm_capabilities;
 894         ddi_taskq_t             *m_dr_taskq;
 895         int                     m_mpxio_enable;
 896         uint8_t                 m_done_traverse_dev;
 897         uint8_t                 m_done_traverse_smp;
 898         int                     m_diag_action_in_progress;
 899         uint16_t                m_dev_handle;
 900         uint16_t                m_smp_devhdl;
 901 
 902         /* In case of reset */
 903         ddi_taskq_t             *m_reset_taskq;
 904 
 905         /*
 906          * Event recording
 907          */
 908         uint8_t                 m_event_index;
 909         uint32_t                m_event_number;
 910         uint32_t                m_event_mask[4];
 911         mptsas_event_entry_t    m_events[MPTSAS_EVENT_QUEUE_SIZE];
 912 
 913         /*
 914          * FW diag Buffer List
 915          */
 916         mptsas_fw_diagnostic_buffer_t
 917                 m_fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_COUNT];
 918 
 919         /* GEN3 support */
 920         uint8_t                 m_MPI25;
 921 
 922         /*
 923          * Event Replay flag (MUR support)
 924          */


1313 int mptsas_send_extended_config_request_msg(mptsas_t *mpt, uint8_t action,
1314     uint8_t extpagetype, uint32_t pageaddress, uint8_t pagenumber,
1315     uint8_t pageversion, uint16_t extpagelength,
1316     uint32_t SGEflagslength, uint64_t SGEaddress);
1317 
1318 int mptsas_request_from_pool(mptsas_t *mpt, mptsas_cmd_t **cmd,
1319     struct scsi_pkt **pkt);
1320 void mptsas_return_to_pool(mptsas_t *mpt, mptsas_cmd_t *cmd);
1321 void mptsas_destroy_ioc_event_cmd(mptsas_t *mpt);
1322 void mptsas_start_config_page_access(mptsas_t *mpt, mptsas_cmd_t *cmd);
1323 int mptsas_access_config_page(mptsas_t *mpt, uint8_t action, uint8_t page_type,
1324     uint8_t page_number, uint32_t page_address, int (*callback) (mptsas_t *,
1325     caddr_t, ddi_acc_handle_t, uint16_t, uint32_t, va_list), ...);
1326 
1327 int mptsas_ioc_task_management(mptsas_t *mpt, int task_type,
1328     uint16_t dev_handle, int lun, uint8_t *reply, uint32_t reply_size,
1329     int mode);
1330 int mptsas_send_event_ack(mptsas_t *mpt, uint32_t event, uint32_t eventcntx);
1331 void mptsas_send_pending_event_ack(mptsas_t *mpt);
1332 void mptsas_set_throttle(struct mptsas *mpt, mptsas_target_t *ptgt, int what);
1333 void mptsas_handle_restart_ioc(void *mpt);
1334 int mptsas_restart_ioc(mptsas_t *mpt);
1335 void mptsas_update_driver_data(struct mptsas *mpt);
1336 uint64_t mptsas_get_sata_guid(mptsas_t *mpt, mptsas_target_t *ptgt, int lun);
1337 
1338 /*
1339  * init functions
1340  */
1341 int mptsas_ioc_get_facts(mptsas_t *mpt);
1342 int mptsas_ioc_get_port_facts(mptsas_t *mpt, int port);
1343 int mptsas_ioc_enable_port(mptsas_t *mpt);
1344 int mptsas_ioc_enable_event_notification(mptsas_t *mpt);
1345 int mptsas_ioc_init(mptsas_t *mpt);
1346 
1347 /*
1348  * configuration pages operation
1349  */
1350 int mptsas_get_sas_device_page0(mptsas_t *mpt, uint32_t page_address,
1351     uint16_t *dev_handle, uint64_t *sas_wwn, uint32_t *dev_info,
1352     uint8_t *physport, uint8_t *phynum, uint16_t *pdevhandle,
1353     uint16_t *slot_num, uint16_t *enclosure, uint16_t *io_flags);