1fcf3ce44SJohn Forte /* 2fcf3ce44SJohn Forte * CDDL HEADER START 3fcf3ce44SJohn Forte * 4fcf3ce44SJohn Forte * The contents of this file are subject to the terms of the 5fcf3ce44SJohn Forte * Common Development and Distribution License (the "License"). 6fcf3ce44SJohn Forte * You may not use this file except in compliance with the License. 7fcf3ce44SJohn Forte * 8fcf3ce44SJohn Forte * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9fcf3ce44SJohn Forte * or http://www.opensolaris.org/os/licensing. 10fcf3ce44SJohn Forte * See the License for the specific language governing permissions 11fcf3ce44SJohn Forte * and limitations under the License. 12fcf3ce44SJohn Forte * 13fcf3ce44SJohn Forte * When distributing Covered Code, include this CDDL HEADER in each 14fcf3ce44SJohn Forte * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15fcf3ce44SJohn Forte * If applicable, add the following below this CDDL HEADER, with the 16fcf3ce44SJohn Forte * fields enclosed by brackets "[]" replaced with your own identifying 17fcf3ce44SJohn Forte * information: Portions Copyright [yyyy] [name of copyright owner] 18fcf3ce44SJohn Forte * 19fcf3ce44SJohn Forte * CDDL HEADER END 20fcf3ce44SJohn Forte */ 21fcf3ce44SJohn Forte 22fcf3ce44SJohn Forte /* 23*6a573d82SSukumar Swaminathan * Copyright 2010 Emulex. All rights reserved. 2482527734SSukumar Swaminathan * Use is subject to license terms. 25fcf3ce44SJohn Forte */ 26fcf3ce44SJohn Forte 27fcf3ce44SJohn Forte #ifndef _EMLXS_EXTERN_H 28fcf3ce44SJohn Forte #define _EMLXS_EXTERN_H 29fcf3ce44SJohn Forte 30fcf3ce44SJohn Forte #ifdef __cplusplus 31fcf3ce44SJohn Forte extern "C" { 32fcf3ce44SJohn Forte #endif 33fcf3ce44SJohn Forte 34291a2b48SSukumar Swaminathan extern void *emlxs_soft_state; 35291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance[MAX_FC_BRDS]; 36291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance_count; 37291a2b48SSukumar Swaminathan extern char emlxs_revision[32]; 38291a2b48SSukumar Swaminathan extern char emlxs_version[32]; 39291a2b48SSukumar Swaminathan extern char emlxs_name[64]; 40291a2b48SSukumar Swaminathan extern char emlxs_label[64]; 41291a2b48SSukumar Swaminathan 42291a2b48SSukumar Swaminathan extern emlxs_device_t emlxs_device; 43291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance[MAX_FC_BRDS]; 44291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance_count; 45291a2b48SSukumar Swaminathan 46291a2b48SSukumar Swaminathan extern ddi_device_acc_attr_t emlxs_data_acc_attr; 47291a2b48SSukumar Swaminathan extern ddi_device_acc_attr_t emlxs_dev_acc_attr; 48291a2b48SSukumar Swaminathan extern ddi_dma_lim_t emlxs_dma_lim; 49291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_state; 50291a2b48SSukumar Swaminathan extern emlxs_config_t emlxs_cfg[]; 51291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr; 52291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr_ro; 53291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr_fcip_rsp; 54291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr_1sg; 55fcf3ce44SJohn Forte 56fcf3ce44SJohn Forte /* Module emlxs_msg.c External Routine Declarations */ 57291a2b48SSukumar Swaminathan extern void emlxs_msg_printf(emlxs_port_t *port, 58291a2b48SSukumar Swaminathan const uint32_t fileno, 59291a2b48SSukumar Swaminathan const uint32_t line, 60291a2b48SSukumar Swaminathan emlxs_msg_t *msg, 61291a2b48SSukumar Swaminathan const char *fmt, ...); 62291a2b48SSukumar Swaminathan extern uint32_t emlxs_msg_log_create(emlxs_hba_t *hba); 63291a2b48SSukumar Swaminathan extern uint32_t emlxs_msg_log_destroy(emlxs_hba_t *hba); 64291a2b48SSukumar Swaminathan extern uint32_t emlxs_msg_log_get(emlxs_hba_t *hba, 65291a2b48SSukumar Swaminathan emlxs_log_req_t *req, 66291a2b48SSukumar Swaminathan emlxs_log_resp_t *resp); 6782527734SSukumar Swaminathan 6882527734SSukumar Swaminathan /* Module emlxs_event.c External Routine Declarations */ 6982527734SSukumar Swaminathan extern void emlxs_timer_check_events(emlxs_hba_t *hba); 7082527734SSukumar Swaminathan 7182527734SSukumar Swaminathan extern uint32_t emlxs_event_queue_create(emlxs_hba_t *hba); 7282527734SSukumar Swaminathan 7382527734SSukumar Swaminathan extern void emlxs_event_queue_destroy(emlxs_hba_t *hba); 7482527734SSukumar Swaminathan 7582527734SSukumar Swaminathan extern void emlxs_event(emlxs_port_t *port, 7682527734SSukumar Swaminathan emlxs_event_t *evt, void *bp, 7782527734SSukumar Swaminathan uint32_t size); 78291a2b48SSukumar Swaminathan extern void emlxs_log_dump_event(emlxs_port_t *port, 79291a2b48SSukumar Swaminathan uint8_t *buffer, uint32_t size); 80291a2b48SSukumar Swaminathan extern void emlxs_log_link_event(emlxs_port_t *port); 8182527734SSukumar Swaminathan 82291a2b48SSukumar Swaminathan extern uint32_t emlxs_log_ct_event(emlxs_port_t *port, 83291a2b48SSukumar Swaminathan uint8_t *payload, uint32_t size, 84291a2b48SSukumar Swaminathan uint32_t rxid); 85291a2b48SSukumar Swaminathan extern void emlxs_log_rscn_event(emlxs_port_t *port, 86291a2b48SSukumar Swaminathan uint8_t *payload, uint32_t size); 87291a2b48SSukumar Swaminathan extern void emlxs_log_vportrscn_event(emlxs_port_t *port, 88291a2b48SSukumar Swaminathan uint8_t *payload, uint32_t size); 89291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dfc_event(emlxs_port_t *port, 90291a2b48SSukumar Swaminathan emlxs_dfc_event_t *dfc_event, 91291a2b48SSukumar Swaminathan uint32_t sleep); 92291a2b48SSukumar Swaminathan extern uint32_t emlxs_kill_dfc_event(emlxs_port_t *port, 93291a2b48SSukumar Swaminathan emlxs_dfc_event_t *dfc_event); 94291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dfc_eventinfo(emlxs_port_t *port, 95291a2b48SSukumar Swaminathan HBA_EVENTINFO *eventinfo, 96291a2b48SSukumar Swaminathan uint32_t *eventcount, 97291a2b48SSukumar Swaminathan uint32_t *missed); 98291a2b48SSukumar Swaminathan extern void emlxs_log_temp_event(emlxs_port_t *port, 99291a2b48SSukumar Swaminathan uint32_t type, uint32_t temp); 100291a2b48SSukumar Swaminathan extern void emlxs_log_fcoe_event(emlxs_port_t *port, 101291a2b48SSukumar Swaminathan menlo_init_rsp_t *init_rsp); 102291a2b48SSukumar Swaminathan extern void emlxs_log_async_event(emlxs_port_t *port, 103291a2b48SSukumar Swaminathan IOCB *iocb); 104fcf3ce44SJohn Forte 10582527734SSukumar Swaminathan #ifdef SAN_DIAG_SUPPORT 10682527734SSukumar Swaminathan extern uint32_t emlxs_get_sd_event(emlxs_port_t *port, 10782527734SSukumar Swaminathan emlxs_dfc_event_t *dfc_event, 10882527734SSukumar Swaminathan uint32_t sleep); 10982527734SSukumar Swaminathan extern void emlxs_log_sd_basic_els_event(emlxs_port_t *port, 11082527734SSukumar Swaminathan uint32_t subcat, HBA_WWN *portname, 11182527734SSukumar Swaminathan HBA_WWN *nodename); 11282527734SSukumar Swaminathan extern void emlxs_log_sd_prlo_event(emlxs_port_t *port, 11382527734SSukumar Swaminathan HBA_WWN *portname); 11482527734SSukumar Swaminathan extern void emlxs_log_sd_lsrjt_event(emlxs_port_t *port, 11582527734SSukumar Swaminathan HBA_WWN *remoteport, uint32_t orig_cmd, 11682527734SSukumar Swaminathan uint32_t reason, uint32_t reason_expl); 11782527734SSukumar Swaminathan extern void emlxs_log_sd_fc_bsy_event(emlxs_port_t *port, 11882527734SSukumar Swaminathan HBA_WWN *remoteport); 11982527734SSukumar Swaminathan extern void emlxs_log_sd_fc_rdchk_event(emlxs_port_t *port, 12082527734SSukumar Swaminathan HBA_WWN *remoteport, uint32_t lun, 12182527734SSukumar Swaminathan uint32_t opcode, uint32_t fcp_param); 12282527734SSukumar Swaminathan extern void emlxs_log_sd_scsi_event(emlxs_port_t *port, 12382527734SSukumar Swaminathan uint32_t type, HBA_WWN *remoteport, 12482527734SSukumar Swaminathan int32_t lun); 12582527734SSukumar Swaminathan extern void emlxs_log_sd_scsi_check_event( 12682527734SSukumar Swaminathan emlxs_port_t *port, 12782527734SSukumar Swaminathan HBA_WWN *remoteport, uint32_t lun, 12882527734SSukumar Swaminathan uint32_t cmdcode, uint32_t sensekey, 12982527734SSukumar Swaminathan uint32_t asc, uint32_t ascq); 13082527734SSukumar Swaminathan #endif /* SAN_DIAG_SUPPORT */ 13182527734SSukumar Swaminathan 132fcf3ce44SJohn Forte /* Module emlxs_solaris.c External Routine Declarations */ 133291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_abort(opaque_t fca_port_handle, 134291a2b48SSukumar Swaminathan fc_packet_t *pkt, int32_t sleep); 135291a2b48SSukumar Swaminathan extern char *emlxs_state_xlate(uint8_t state); 136291a2b48SSukumar Swaminathan extern char *emlxs_error_xlate(uint8_t errno); 137291a2b48SSukumar Swaminathan extern void emlxs_mem_free(emlxs_hba_t *hba, 138291a2b48SSukumar Swaminathan MBUF_INFO *buf_info); 139291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_alloc(emlxs_hba_t *hba, 140291a2b48SSukumar Swaminathan MBUF_INFO *buf_info); 141291a2b48SSukumar Swaminathan extern int emlxs_map_bus(emlxs_hba_t *hba); 142291a2b48SSukumar Swaminathan extern void emlxs_unmap_bus(emlxs_hba_t *hba); 143291a2b48SSukumar Swaminathan extern fc_unsol_buf_t *emlxs_ub_find(emlxs_port_t *port, 144291a2b48SSukumar Swaminathan uint32_t token); 145291a2b48SSukumar Swaminathan extern fc_unsol_buf_t *emlxs_ub_get(emlxs_port_t *port, uint32_t size, 146291a2b48SSukumar Swaminathan uint32_t type, uint32_t resv); 147291a2b48SSukumar Swaminathan extern int32_t emlxs_log_printf(int32_t f, int32_t type, 148291a2b48SSukumar Swaminathan int32_t num, int32_t brdno, 149291a2b48SSukumar Swaminathan const char *fmt, ...); 150291a2b48SSukumar Swaminathan extern void emlxs_set_pkt_state(emlxs_buf_t *sbp, 151291a2b48SSukumar Swaminathan uint32_t iostat, uint8_t localstat, 152291a2b48SSukumar Swaminathan uint32_t lock); 153291a2b48SSukumar Swaminathan extern char *emlxs_elscmd_xlate(uint32_t cmd); 154291a2b48SSukumar Swaminathan extern char *emlxs_ctcmd_xlate(uint32_t cmd); 155291a2b48SSukumar Swaminathan extern char *emlxs_rmcmd_xlate(uint32_t cmd); 156291a2b48SSukumar Swaminathan extern char *emlxs_wwn_xlate(char *buffer, uint8_t *wwn); 157291a2b48SSukumar Swaminathan extern int32_t emlxs_transport(opaque_t fca_port_handle, 158291a2b48SSukumar Swaminathan fc_packet_t *pkt); 159291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_uninit(opaque_t fca_port_handle, 160291a2b48SSukumar Swaminathan fc_packet_t *pkt); 161291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_init(opaque_t fca_port_handle, 162291a2b48SSukumar Swaminathan fc_packet_t *pkt, int32_t sleep); 163291a2b48SSukumar Swaminathan extern void emlxs_pkt_complete(emlxs_buf_t *sbp, 164291a2b48SSukumar Swaminathan uint32_t iostat, uint8_t localstat, 165291a2b48SSukumar Swaminathan uint32_t doneq); 166291a2b48SSukumar Swaminathan 167291a2b48SSukumar Swaminathan #ifdef SAN_DIAG_SUPPORT 168291a2b48SSukumar Swaminathan extern void emlxs_update_sd_bucket(emlxs_buf_t *sbp); 169291a2b48SSukumar Swaminathan #endif /* SAN_DIAG_SUPPORT */ 170291a2b48SSukumar Swaminathan 171291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_instance(int32_t ddiinst); 172291a2b48SSukumar Swaminathan extern char *emlxs_mscmd_xlate(uint16_t cmd); 173*6a573d82SSukumar Swaminathan extern int32_t emlxs_reset(emlxs_port_t *port, uint32_t cmd); 174291a2b48SSukumar Swaminathan extern void emlxs_swap_service_params(SERV_PARM *sp); 175291a2b48SSukumar Swaminathan extern void emlxs_swap_fcp_pkt(emlxs_buf_t *sbp); 176291a2b48SSukumar Swaminathan extern void emlxs_swap_ct_pkt(emlxs_buf_t *sbp); 177291a2b48SSukumar Swaminathan extern void emlxs_swap_els_pkt(emlxs_buf_t *sbp); 178291a2b48SSukumar Swaminathan extern int emlxs_ub_release(opaque_t fca_port_handle, 179291a2b48SSukumar Swaminathan uint32_t count, uint64_t tokens[]); 180291a2b48SSukumar Swaminathan extern void emlxs_swap_els_ub(fc_unsol_buf_t *ubp); 181291a2b48SSukumar Swaminathan extern void emlxs_unswap_pkt(emlxs_buf_t *sbp); 18282527734SSukumar Swaminathan extern uint32_t emlxs_get_key(emlxs_hba_t *hba, MAILBOXQ *mbq); 183291a2b48SSukumar Swaminathan extern int emlxs_pm_busy_component(dev_info_t *dip); 184291a2b48SSukumar Swaminathan extern int emlxs_pm_idle_component(dev_info_t *dip); 185291a2b48SSukumar Swaminathan extern void emlxs_pm_idle_timer(dev_info_t *dip); 186bb63f56eSSukumar Swaminathan extern void emlxs_shutdown_thread(emlxs_hba_t *hba, 187bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 188291a2b48SSukumar Swaminathan extern uint32_t emlxs_set_parm(emlxs_hba_t *hba, uint32_t index, 189291a2b48SSukumar Swaminathan uint32_t new_value); 190291a2b48SSukumar Swaminathan extern void emlxs_ub_destroy(emlxs_port_t *port, 191291a2b48SSukumar Swaminathan emlxs_unsol_buf_t *pool); 192291a2b48SSukumar Swaminathan extern void emlxs_ub_callback(emlxs_port_t *port, 193291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp); 194291a2b48SSukumar Swaminathan extern void emlxs_ub_flush(emlxs_port_t *port); 195291a2b48SSukumar Swaminathan extern uint32_t emlxs_check_parm(emlxs_hba_t *hba, 196291a2b48SSukumar Swaminathan uint32_t index, uint32_t new_value); 197291a2b48SSukumar Swaminathan extern int32_t emlxs_port_manage(opaque_t fca_port_handle, 198291a2b48SSukumar Swaminathan fc_fca_pm_t *pm); 199291a2b48SSukumar Swaminathan extern void emlxs_port_init(emlxs_port_t *port); 200291a2b48SSukumar Swaminathan extern void emlxs_get_fcode_version(emlxs_hba_t *hba); 201fcf3ce44SJohn Forte 20282527734SSukumar Swaminathan extern void emlxs_swap32_buffer(uint8_t *buffer, 20382527734SSukumar Swaminathan uint32_t size); 20482527734SSukumar Swaminathan extern void emlxs_swap32_bcopy(uint8_t *src, 20582527734SSukumar Swaminathan uint8_t *dst, uint32_t size); 20682527734SSukumar Swaminathan 207fcf3ce44SJohn Forte #ifdef MENLO_SUPPORT 208291a2b48SSukumar Swaminathan extern char *emlxs_menlo_cmd_xlate(uint32_t cmd); 209291a2b48SSukumar Swaminathan extern char *emlxs_menlo_rsp_xlate(uint32_t rsp); 210291a2b48SSukumar Swaminathan #endif /* MENLO_SUPPORT */ 211291a2b48SSukumar Swaminathan 212291a2b48SSukumar Swaminathan #ifdef FMA_SUPPORT 213291a2b48SSukumar Swaminathan extern void emlxs_fm_init(emlxs_hba_t *hba); 214291a2b48SSukumar Swaminathan extern void emlxs_fm_fini(emlxs_hba_t *hba); 215bb63f56eSSukumar Swaminathan extern int emlxs_fm_check_acc_handle(emlxs_hba_t *hba, 216291a2b48SSukumar Swaminathan ddi_acc_handle_t handle); 217bb63f56eSSukumar Swaminathan extern int emlxs_fm_check_dma_handle(emlxs_hba_t *hba, 218291a2b48SSukumar Swaminathan ddi_dma_handle_t handle); 219291a2b48SSukumar Swaminathan extern void emlxs_fm_ereport(emlxs_hba_t *hba, 220291a2b48SSukumar Swaminathan char *detail); 221bb63f56eSSukumar Swaminathan extern void emlxs_fm_service_impact(emlxs_hba_t *hba, 222bb63f56eSSukumar Swaminathan int impact); 223291a2b48SSukumar Swaminathan extern int emlxs_fm_error_cb(dev_info_t *dip, 224291a2b48SSukumar Swaminathan ddi_fm_error_t *err, 225291a2b48SSukumar Swaminathan const void *impl_data); 226b3660a96SSukumar Swaminathan extern void emlxs_check_dma(emlxs_hba_t *hba, 227b3660a96SSukumar Swaminathan emlxs_buf_t *sbp); 228291a2b48SSukumar Swaminathan #endif /* FMA_SUPPORT */ 229fcf3ce44SJohn Forte 230fcf3ce44SJohn Forte /* Module emlxs_pkt.c External Routine Declarations */ 231291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_send(fc_packet_t *pkt, uint32_t now); 232291a2b48SSukumar Swaminathan extern void emlxs_pkt_free(fc_packet_t *pkt); 233291a2b48SSukumar Swaminathan extern void emlxs_pkt_callback(fc_packet_t *pkt); 234291a2b48SSukumar Swaminathan extern fc_packet_t *emlxs_pkt_alloc(emlxs_port_t *port, 235291a2b48SSukumar Swaminathan uint32_t cmdlen, uint32_t rsplen, 236291a2b48SSukumar Swaminathan uint32_t datalen, int32_t sleep); 237fcf3ce44SJohn Forte 238fcf3ce44SJohn Forte /* Module emlxs_clock.c External Routine Declarations */ 239291a2b48SSukumar Swaminathan extern void emlxs_timer_checks(emlxs_hba_t *hba); 240291a2b48SSukumar Swaminathan extern void emlxs_timer_start(emlxs_hba_t *hba); 241291a2b48SSukumar Swaminathan extern void emlxs_timer_stop(emlxs_hba_t *hba); 242291a2b48SSukumar Swaminathan extern void emlxs_link_timeout(emlxs_hba_t *hba); 243291a2b48SSukumar Swaminathan extern clock_t emlxs_timeout(emlxs_hba_t *hba, 244291a2b48SSukumar Swaminathan uint32_t timeout); 245fcf3ce44SJohn Forte 246fcf3ce44SJohn Forte /* Module emlxs_dhchap.c External Routine Declarations */ 247fcf3ce44SJohn Forte #ifdef DHCHAP_SUPPORT 248291a2b48SSukumar Swaminathan extern int emlxs_dhchap_state_machine(emlxs_port_t *port, 24982527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq, 25082527734SSukumar Swaminathan MATCHMAP *mp, NODELIST *node, int evt); 251291a2b48SSukumar Swaminathan 252291a2b48SSukumar Swaminathan extern void emlxs_dhc_attach(emlxs_hba_t *hba); 253291a2b48SSukumar Swaminathan extern void emlxs_dhc_detach(emlxs_hba_t *hba); 254291a2b48SSukumar Swaminathan extern void emlxs_dhc_authrsp_timeout(emlxs_port_t *port, 255291a2b48SSukumar Swaminathan void *node, void *null); 256291a2b48SSukumar Swaminathan extern void emlxs_dhc_reauth_timeout(emlxs_port_t *port, 257291a2b48SSukumar Swaminathan void *newtimeout, void *node); 258291a2b48SSukumar Swaminathan extern void emlxs_dhc_auth_stop(emlxs_port_t *port, 259291a2b48SSukumar Swaminathan emlxs_node_t *node); 260291a2b48SSukumar Swaminathan extern int emlxs_dhc_auth_start(emlxs_port_t *port, 261291a2b48SSukumar Swaminathan emlxs_node_t *node, uint8_t *sbp, 262291a2b48SSukumar Swaminathan uint8_t *ubp); 263291a2b48SSukumar Swaminathan extern void emlxs_dhc_init_sp(emlxs_port_t *port, 264291a2b48SSukumar Swaminathan uint32_t did, SERV_PARM *sp, 265291a2b48SSukumar Swaminathan char **msg); 266291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_verify_login(emlxs_port_t *port, 267291a2b48SSukumar Swaminathan uint32_t sid, SERV_PARM *sp); 268291a2b48SSukumar Swaminathan extern void emlxs_dhc_status(emlxs_port_t *port, 269291a2b48SSukumar Swaminathan emlxs_node_t *ndlp, uint32_t reason, 270291a2b48SSukumar Swaminathan uint32_t explaination); 271291a2b48SSukumar Swaminathan extern void emlxs_dhc_state(emlxs_port_t *port, 272291a2b48SSukumar Swaminathan emlxs_node_t *ndlp, uint32_t state, 273291a2b48SSukumar Swaminathan uint32_t reason, 274291a2b48SSukumar Swaminathan uint32_t explaination); 275291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_init_auth(emlxs_hba_t *hba, 276291a2b48SSukumar Swaminathan uint8_t *lwwpn, uint8_t *rwwpn); 277291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_cfg(emlxs_hba_t *hba, 278291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg); 279291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_key(emlxs_hba_t *hba, 280291a2b48SSukumar Swaminathan dfc_auth_password_t *dfc_auth_pwd); 281291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_add_auth_cfg(emlxs_hba_t *hba, 282291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg, 283291a2b48SSukumar Swaminathan dfc_password_t *dfc_pwd); 284291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_delete_auth_cfg(emlxs_hba_t *hba, 285291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg, 286291a2b48SSukumar Swaminathan dfc_password_t *dfc_pwd); 287291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_set_auth_key(emlxs_hba_t *hba, 288291a2b48SSukumar Swaminathan dfc_auth_password_t *dfc_pwd); 289291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_status(emlxs_hba_t *hba, 290291a2b48SSukumar Swaminathan dfc_auth_status_t *fcsp_status); 291291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_cfg_table(emlxs_hba_t *hba, 292291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg); 293291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_key_table(emlxs_hba_t *hba, 294291a2b48SSukumar Swaminathan dfc_auth_password_t *auth_pwd); 295fcf3ce44SJohn Forte #endif /* DHCHAP_SUPPORT */ 296fcf3ce44SJohn Forte 297fcf3ce44SJohn Forte /* Module emlxs_node.c External Routine Declarations */ 298291a2b48SSukumar Swaminathan extern void emlxs_node_timeout(emlxs_port_t *port, 299291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t ringno); 300291a2b48SSukumar Swaminathan extern void emlxs_node_open(emlxs_port_t *port, 301291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t ringno); 302291a2b48SSukumar Swaminathan extern void emlxs_node_close(emlxs_port_t *port, 303291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t ringno, 304291a2b48SSukumar Swaminathan int32_t timeout); 305291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_did(emlxs_port_t *port, 306291a2b48SSukumar Swaminathan uint32_t did); 307291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_rpi(emlxs_port_t *port, 308291a2b48SSukumar Swaminathan uint32_t rpi); 309291a2b48SSukumar Swaminathan extern void emlxs_node_destroy_all(emlxs_port_t *port); 310291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_mac(emlxs_port_t *port, 311291a2b48SSukumar Swaminathan uint8_t *mac); 312291a2b48SSukumar Swaminathan extern void emlxs_node_add(emlxs_port_t *port, 313291a2b48SSukumar Swaminathan NODELIST *ndlp); 314291a2b48SSukumar Swaminathan extern void emlxs_node_rm(emlxs_port_t *port, 315291a2b48SSukumar Swaminathan NODELIST *ndlp); 316291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_wwpn(emlxs_port_t *port, 317291a2b48SSukumar Swaminathan uint8_t *wwpn); 318291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_index(emlxs_port_t *port, 319291a2b48SSukumar Swaminathan uint32_t index, uint32_t nports_only); 320291a2b48SSukumar Swaminathan extern uint32_t emlxs_nport_count(emlxs_port_t *port); 321fcf3ce44SJohn Forte 322fcf3ce44SJohn Forte /* Module emlxs_els.c External Routine Declarations */ 323291a2b48SSukumar Swaminathan extern int32_t emlxs_els_handle_event(emlxs_hba_t *hba, 32482527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *temp); 325291a2b48SSukumar Swaminathan extern int32_t emlxs_els_handle_unsol_req(emlxs_port_t *port, 32682527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq, 32782527734SSukumar Swaminathan MATCHMAP *mp, uint32_t size); 328291a2b48SSukumar Swaminathan extern uint32_t emlxs_generate_rscn(emlxs_port_t *port, 329291a2b48SSukumar Swaminathan uint32_t d_id); 330291a2b48SSukumar Swaminathan extern int32_t emlxs_ct_handle_event(emlxs_hba_t *hba, 33182527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *temp); 332291a2b48SSukumar Swaminathan extern int32_t emlxs_ct_handle_unsol_req(emlxs_port_t *port, 33382527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq, 33482527734SSukumar Swaminathan MATCHMAP *mp, uint32_t size); 335291a2b48SSukumar Swaminathan extern int32_t emlxs_els_reply(emlxs_port_t *port, 336291a2b48SSukumar Swaminathan IOCBQ *iocbq, uint32_t type, 337291a2b48SSukumar Swaminathan uint32_t type2, uint32_t reason, 338291a2b48SSukumar Swaminathan uint32_t explain); 339291a2b48SSukumar Swaminathan extern void emlxs_send_logo(emlxs_port_t *port, 340291a2b48SSukumar Swaminathan uint32_t d_id); 341bb63f56eSSukumar Swaminathan extern void emlxs_reset_link_thread(emlxs_hba_t *hba, 342bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 343291a2b48SSukumar Swaminathan extern uint32_t emlxs_process_unsol_flogi(emlxs_port_t *port, 344291a2b48SSukumar Swaminathan IOCBQ *iocbq, MATCHMAP *mp, 345291a2b48SSukumar Swaminathan uint32_t size, char *buffer); 346291a2b48SSukumar Swaminathan extern uint32_t emlxs_process_unsol_plogi(emlxs_port_t *port, 347291a2b48SSukumar Swaminathan IOCBQ *iocbq, MATCHMAP *mp, 348291a2b48SSukumar Swaminathan uint32_t size, char *buffer); 349291a2b48SSukumar Swaminathan extern uint32_t emlxs_ub_send_login_acc(emlxs_port_t *port, 350291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp); 351fcf3ce44SJohn Forte 352fcf3ce44SJohn Forte #ifdef MENLO_SUPPORT 353291a2b48SSukumar Swaminathan extern int emlxs_menlo_handle_event(emlxs_hba_t *hba, 35482527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq); 355291a2b48SSukumar Swaminathan #endif /* MENLO_SUPPORT */ 356fcf3ce44SJohn Forte 357fcf3ce44SJohn Forte /* Module emlxs_ip.c External Routine Declarations */ 358291a2b48SSukumar Swaminathan extern int32_t emlxs_ip_handle_event(emlxs_hba_t *hba, 35982527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *temp); 360291a2b48SSukumar Swaminathan extern int emlxs_ip_handle_rcv_seq_list(emlxs_hba_t *hba, 36182527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *saveq); 362291a2b48SSukumar Swaminathan extern int emlxs_ip_handle_unsol_req(emlxs_port_t *port, 36382527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq, MATCHMAP *mp, 364291a2b48SSukumar Swaminathan uint32_t size); 36582527734SSukumar Swaminathan extern int emlxs_create_xri(emlxs_port_t *port, 36682527734SSukumar Swaminathan CHANNEL *cp, NODELIST *ndlp); 367291a2b48SSukumar Swaminathan extern int emlxs_handle_create_xri(emlxs_hba_t *hba, 36882527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *temp); 369291a2b48SSukumar Swaminathan extern int emlxs_handle_xri_aborted(emlxs_hba_t *hba, 37082527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *temp); 371fcf3ce44SJohn Forte 372fcf3ce44SJohn Forte /* Module emlxs_mbox.c External Routine Declarations */ 373291a2b48SSukumar Swaminathan extern void emlxs_mb_config_msi(emlxs_hba_t *hba, 37482527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t *intr_map, 375291a2b48SSukumar Swaminathan uint32_t intr_count); 376291a2b48SSukumar Swaminathan extern void emlxs_mb_config_msix(emlxs_hba_t *hba, 37782527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t *intr_map, 378291a2b48SSukumar Swaminathan uint32_t intr_count); 379291a2b48SSukumar Swaminathan extern void emlxs_mb_read_lnk_stat(emlxs_hba_t *hba, 38082527734SSukumar Swaminathan MAILBOXQ *mbq); 381291a2b48SSukumar Swaminathan extern void emlxs_mb_config_link(emlxs_hba_t *hba, 38282527734SSukumar Swaminathan MAILBOXQ *mbq); 383291a2b48SSukumar Swaminathan extern void emlxs_mb_config_ring(emlxs_hba_t *hba, 38482527734SSukumar Swaminathan int32_t ring, MAILBOXQ *mbq); 385291a2b48SSukumar Swaminathan extern void emlxs_mb_init_link(emlxs_hba_t *hba, 38682527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t topology, 387291a2b48SSukumar Swaminathan uint32_t linkspeed); 388291a2b48SSukumar Swaminathan extern void emlxs_mb_down_link(emlxs_hba_t *hba, 38982527734SSukumar Swaminathan MAILBOXQ *mbq); 390291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_la(emlxs_hba_t *hba, 39182527734SSukumar Swaminathan MAILBOXQ *mbq); 392291a2b48SSukumar Swaminathan extern void emlxs_mb_read_nv(emlxs_hba_t *hba, 39382527734SSukumar Swaminathan MAILBOXQ *mbq); 394291a2b48SSukumar Swaminathan extern void emlxs_mb_read_rev(emlxs_hba_t *hba, 39582527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t v3); 396291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_rpi(emlxs_hba_t *hba, 39782527734SSukumar Swaminathan uint32_t rpi, MAILBOXQ *mbq, 398291a2b48SSukumar Swaminathan uint32_t flg); 399291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_xri(emlxs_hba_t *hba, 40082527734SSukumar Swaminathan uint32_t xri, MAILBOXQ *mbq, 401291a2b48SSukumar Swaminathan uint32_t flg); 402291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_sparam(emlxs_hba_t *hba, 40382527734SSukumar Swaminathan MAILBOXQ *mbq); 404291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_reg_did(emlxs_port_t *port, 405291a2b48SSukumar Swaminathan uint32_t did, SERV_PARM *param, 406291a2b48SSukumar Swaminathan emlxs_buf_t *sbp, fc_unsol_buf_t *ubp, 407291a2b48SSukumar Swaminathan IOCBQ *iocbq); 408291a2b48SSukumar Swaminathan extern void emlxs_disable_tc(emlxs_hba_t *hba, 40982527734SSukumar Swaminathan MAILBOXQ *mbq); 410291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_run_biu_diag(emlxs_hba_t *hba, 41182527734SSukumar Swaminathan MAILBOXQ *mbq, uint64_t in, 41282527734SSukumar Swaminathan uint64_t out); 413291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_unreg_rpi(emlxs_port_t *port, 414291a2b48SSukumar Swaminathan uint32_t rpi, emlxs_buf_t *sbp, 415291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp, IOCBQ *iocbq); 416291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_unreg_did(emlxs_port_t *port, 417291a2b48SSukumar Swaminathan uint32_t did, emlxs_buf_t *sbp, 418291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp, IOCBQ *iocbq); 419291a2b48SSukumar Swaminathan extern void emlxs_mb_dump_vpd(emlxs_hba_t *hba, 42082527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t offset); 42182527734SSukumar Swaminathan extern void emlxs_mb_dump_fcoe(emlxs_hba_t *hba, 42282527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t offset); 423291a2b48SSukumar Swaminathan extern void emlxs_mb_config_farp(emlxs_hba_t *hba, 42482527734SSukumar Swaminathan MAILBOXQ *mbq); 425291a2b48SSukumar Swaminathan extern void emlxs_mb_read_config(emlxs_hba_t *hba, 42682527734SSukumar Swaminathan MAILBOXQ *mbq); 427291a2b48SSukumar Swaminathan extern void emlxs_mb_put(emlxs_hba_t *hba, 428291a2b48SSukumar Swaminathan MAILBOXQ *mbq); 429291a2b48SSukumar Swaminathan extern MAILBOXQ *emlxs_mb_get(emlxs_hba_t *hba); 430291a2b48SSukumar Swaminathan extern void emlxs_mb_clear_la(emlxs_hba_t *hba, 43182527734SSukumar Swaminathan MAILBOXQ *mbq); 432291a2b48SSukumar Swaminathan extern void emlxs_mb_set_var(emlxs_hba_t *hba, 43382527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t addr, 434291a2b48SSukumar Swaminathan uint32_t value); 435291a2b48SSukumar Swaminathan extern void emlxs_mb_reset_ring(emlxs_hba_t *hba, 43682527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t ringno); 437291a2b48SSukumar Swaminathan extern char *emlxs_mb_cmd_xlate(uint8_t command); 438291a2b48SSukumar Swaminathan extern void emlxs_mb_read_status(emlxs_hba_t *hba, 43982527734SSukumar Swaminathan MAILBOXQ *mbq); 44082527734SSukumar Swaminathan extern int emlxs_cmpl_init_vpi(void *arg1, MAILBOXQ *mbq); 44182527734SSukumar Swaminathan extern uint32_t emlxs_mb_init_vpi(emlxs_port_t *port); 44282527734SSukumar Swaminathan extern int emlxs_cmpl_reg_vpi(void *arg1, MAILBOXQ *mbq); 44382527734SSukumar Swaminathan extern uint32_t emlxs_mb_reg_vpi(emlxs_port_t *port, 44482527734SSukumar Swaminathan emlxs_buf_t *sbp); 44582527734SSukumar Swaminathan extern int emlxs_cmpl_unreg_vpi(void *arg1, MAILBOXQ *mbq); 446291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_unreg_vpi(emlxs_port_t *port); 447291a2b48SSukumar Swaminathan extern void emlxs_mb_fini(emlxs_hba_t *hba, 448291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t mbxStatus); 44982527734SSukumar Swaminathan extern void emlxs_mb_flush(emlxs_hba_t *hba); 450291a2b48SSukumar Swaminathan extern void emlxs_mb_heartbeat(emlxs_hba_t *hba, 45182527734SSukumar Swaminathan MAILBOXQ *mbq); 45282527734SSukumar Swaminathan extern void emlxs_mb_request_features(emlxs_hba_t *hba, 45382527734SSukumar Swaminathan MAILBOXQ *mbq); 45482527734SSukumar Swaminathan extern int emlxs_mb_resume_rpi(emlxs_hba_t *hba, 45582527734SSukumar Swaminathan emlxs_buf_t *sbp, uint16_t rpi); 45682527734SSukumar Swaminathan extern void emlxs_mb_noop(emlxs_hba_t *hba, 45782527734SSukumar Swaminathan MAILBOXQ *mbq); 45882527734SSukumar Swaminathan extern int emlxs_mbext_noop(emlxs_hba_t *hba, 45982527734SSukumar Swaminathan MAILBOXQ *mbq); 46082527734SSukumar Swaminathan extern void emlxs_mb_resetport(emlxs_hba_t *hba, 46182527734SSukumar Swaminathan MAILBOXQ *mbq); 46282527734SSukumar Swaminathan extern void emlxs_mb_eq_create(emlxs_hba_t *hba, 46382527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t num); 46482527734SSukumar Swaminathan extern void emlxs_mb_cq_create(emlxs_hba_t *hba, 46582527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t num); 46682527734SSukumar Swaminathan extern void emlxs_mb_wq_create(emlxs_hba_t *hba, 46782527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t num); 46882527734SSukumar Swaminathan extern void emlxs_mb_rq_create(emlxs_hba_t *hba, 46982527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t num); 47082527734SSukumar Swaminathan extern void emlxs_mb_mq_create(emlxs_hba_t *hba, 47182527734SSukumar Swaminathan MAILBOXQ *mbq); 47282527734SSukumar Swaminathan extern void emlxs_mb_reg_fcfi(emlxs_hba_t *hba, 47382527734SSukumar Swaminathan MAILBOXQ *mbq, FCFIobj_t *fcfp); 47482527734SSukumar Swaminathan extern int emlxs_mb_unreg_fcfi(emlxs_hba_t *hba, 47582527734SSukumar Swaminathan FCFIobj_t *fcfp); 47682527734SSukumar Swaminathan extern int emlxs_mb_reg_vfi(emlxs_hba_t *hba, 47782527734SSukumar Swaminathan MAILBOXQ *mb, VFIobj_t *vfip, 47882527734SSukumar Swaminathan emlxs_port_t *vpip); 47982527734SSukumar Swaminathan extern int emlxs_mb_unreg_vfi(emlxs_hba_t *hba, 48082527734SSukumar Swaminathan VFIobj_t *vfip); 48182527734SSukumar Swaminathan extern int emlxs_mbext_read_fcf_table(emlxs_hba_t *hba, 48282527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t index); 48382527734SSukumar Swaminathan extern int emlxs_mbext_add_fcf_table(emlxs_hba_t *hba, 48482527734SSukumar Swaminathan MAILBOXQ *mbq, uint32_t index); 485291a2b48SSukumar Swaminathan extern void emlxs_mb_async_event(emlxs_hba_t *hba, 48682527734SSukumar Swaminathan MAILBOXQ *mbq); 487291a2b48SSukumar Swaminathan extern int32_t emlxs_mb_check_sparm(emlxs_hba_t *hba, 488291a2b48SSukumar Swaminathan SERV_PARM *nsp); 48982527734SSukumar Swaminathan extern void emlxs_cmpl_mbox(emlxs_hba_t *hba, MAILBOXQ *mq); 49082527734SSukumar Swaminathan extern void emlxs_mb_dump(emlxs_hba_t *hba, MAILBOXQ *mbq, 491291a2b48SSukumar Swaminathan uint32_t offset, uint32_t words); 49282527734SSukumar Swaminathan extern void emlxs_mb_retry(emlxs_hba_t *hba, MAILBOXQ *mbq); 493291a2b48SSukumar Swaminathan extern void emlxs_mb_init(emlxs_hba_t *hba, MAILBOXQ *mbq, 494291a2b48SSukumar Swaminathan uint32_t flag, uint32_t tmo); 495291a2b48SSukumar Swaminathan extern void emlxs_mb_config_hbq(emlxs_hba_t *hba, 49682527734SSukumar Swaminathan MAILBOXQ *mbq, int hbq_id); 497fcf3ce44SJohn Forte 498fcf3ce44SJohn Forte /* Module emlxs_mem.c External Routine Declarations */ 499291a2b48SSukumar Swaminathan extern MATCHMAP *emlxs_mem_get_vaddr(emlxs_hba_t *hba, 500291a2b48SSukumar Swaminathan RING *rp, uint64_t mapbp); 501291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_get(emlxs_hba_t *hba, 50282527734SSukumar Swaminathan uint32_t seg_id, uint32_t priority); 503291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_put(emlxs_hba_t *hba, 50482527734SSukumar Swaminathan uint32_t seg_id, uint8_t *bp); 505291a2b48SSukumar Swaminathan extern int32_t emlxs_mem_free_buffer(emlxs_hba_t *hba); 506291a2b48SSukumar Swaminathan extern int32_t emlxs_mem_alloc_buffer(emlxs_hba_t *hba); 507291a2b48SSukumar Swaminathan extern void emlxs_mem_map_vaddr(emlxs_hba_t *hba, 508291a2b48SSukumar Swaminathan RING *rp, MATCHMAP *mp, uint32_t *haddr, 509291a2b48SSukumar Swaminathan uint32_t *laddr); 51082527734SSukumar Swaminathan extern MATCHMAP *emlxs_mem_buf_alloc(emlxs_hba_t *hba, 51182527734SSukumar Swaminathan uint32_t size); 51282527734SSukumar Swaminathan extern MATCHMAP *emlxs_mem_buf_free(emlxs_hba_t *hba, 51382527734SSukumar Swaminathan MATCHMAP *mp); 514291a2b48SSukumar Swaminathan extern uint32_t emlxs_hbq_alloc(emlxs_hba_t *hba, 515291a2b48SSukumar Swaminathan uint32_t hbq_id); 51682527734SSukumar Swaminathan extern MEMSEG *emlxs_mem_pool_alloc(emlxs_hba_t *hba, 51782527734SSukumar Swaminathan MEMSEG *seg); 51882527734SSukumar Swaminathan extern void emlxs_mem_pool_free(emlxs_hba_t *hba, 51982527734SSukumar Swaminathan MEMSEG *seg); 52082527734SSukumar Swaminathan extern uint8_t *emlxs_mem_pool_get(emlxs_hba_t *hba, 52182527734SSukumar Swaminathan MEMSEG *seg, uint32_t priority); 52282527734SSukumar Swaminathan extern MEMSEG *emlxs_mem_pool_put(emlxs_hba_t *hba, 52382527734SSukumar Swaminathan MEMSEG *seg, uint8_t *bp); 524fcf3ce44SJohn Forte 525fcf3ce44SJohn Forte /* Module emlxs_hba.c External Routine Declarations */ 526291a2b48SSukumar Swaminathan extern void emlxs_decode_firmware_rev(emlxs_hba_t *hba, 527291a2b48SSukumar Swaminathan emlxs_vpd_t *vp); 528291a2b48SSukumar Swaminathan extern uint32_t emlxs_init_adapter_info(emlxs_hba_t *hba); 529291a2b48SSukumar Swaminathan extern uint32_t emlxs_strtol(char *str, uint32_t base); 530291a2b48SSukumar Swaminathan extern uint64_t emlxs_strtoll(char *str, uint32_t base); 531291a2b48SSukumar Swaminathan extern void emlxs_decode_version(uint32_t version, 532291a2b48SSukumar Swaminathan char *buffer); 533291a2b48SSukumar Swaminathan extern char *emlxs_ffstate_xlate(uint32_t new_state); 534291a2b48SSukumar Swaminathan extern char *emlxs_ring_xlate(uint32_t ringno); 53582527734SSukumar Swaminathan extern void emlxs_proc_channel(emlxs_hba_t *hba, 53682527734SSukumar Swaminathan CHANNEL *cp, void *arg2); 537291a2b48SSukumar Swaminathan extern void emlxs_pcix_mxr_update(emlxs_hba_t *hba, 538291a2b48SSukumar Swaminathan uint32_t verbose); 539bb63f56eSSukumar Swaminathan extern void emlxs_restart_thread(emlxs_hba_t *hba, 540bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 541291a2b48SSukumar Swaminathan extern void emlxs_fw_show(emlxs_hba_t *hba); 54282527734SSukumar Swaminathan extern void emlxs_proc_channel_event(emlxs_hba_t *hba, 54382527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq); 544291a2b48SSukumar Swaminathan 54582527734SSukumar Swaminathan #ifdef MODFW_SUPPORT 54682527734SSukumar Swaminathan extern void emlxs_fw_load(emlxs_hba_t *hba, 54782527734SSukumar Swaminathan emlxs_firmware_t *fw); 54882527734SSukumar Swaminathan extern void emlxs_fw_unload(emlxs_hba_t *hba, 54982527734SSukumar Swaminathan emlxs_firmware_t *fw); 55082527734SSukumar Swaminathan #endif /* MODFW_SUPPORT */ 551fcf3ce44SJohn Forte 552fcf3ce44SJohn Forte #ifdef MSI_SUPPORT 553291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_add(emlxs_hba_t *hba); 554291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_remove(emlxs_hba_t *hba); 555291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_init(emlxs_hba_t *hba, uint32_t max); 556291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_uninit(emlxs_hba_t *hba); 557fcf3ce44SJohn Forte #endif /* MSI_SUPPORT */ 558fcf3ce44SJohn Forte 559291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_add(emlxs_hba_t *hba); 560291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_remove(emlxs_hba_t *hba); 561291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_init(emlxs_hba_t *hba, uint32_t max); 562291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_uninit(emlxs_hba_t *hba); 563291a2b48SSukumar Swaminathan 56482527734SSukumar Swaminathan extern void emlxs_parse_prog_types(emlxs_hba_t *hba, 56582527734SSukumar Swaminathan char *types); 56682527734SSukumar Swaminathan extern int32_t emlxs_parse_vpd(emlxs_hba_t *hba, uint8_t *vpd, 56782527734SSukumar Swaminathan uint32_t size); 56882527734SSukumar Swaminathan extern int32_t emlxs_parse_fcoe(emlxs_hba_t *hba, uint8_t *p, 56982527734SSukumar Swaminathan uint32_t size); 570291a2b48SSukumar Swaminathan 57182527734SSukumar Swaminathan extern void emlxs_decode_label(char *label, char *buffer, 57282527734SSukumar Swaminathan int bige); 57382527734SSukumar Swaminathan extern void emlxs_build_prog_types(emlxs_hba_t *hba, 57482527734SSukumar Swaminathan char *prog_types); 57582527734SSukumar Swaminathan extern void emlxs_process_link_speed(emlxs_hba_t *hba); 576291a2b48SSukumar Swaminathan 57782527734SSukumar Swaminathan extern uint32_t emlxs_iotag_flush(emlxs_hba_t *hba); 578291a2b48SSukumar Swaminathan 57982527734SSukumar Swaminathan extern int emlxs_pci_model_count; 58082527734SSukumar Swaminathan extern emlxs_model_t emlxs_pci_model[]; 581291a2b48SSukumar Swaminathan 58282527734SSukumar Swaminathan extern int emlxs_fw_count; 58382527734SSukumar Swaminathan extern emlxs_firmware_t emlxs_fw_table[]; 584291a2b48SSukumar Swaminathan 585291a2b48SSukumar Swaminathan 58682527734SSukumar Swaminathan /* Module emlxs_sli3.c External Routine Declarations */ 58782527734SSukumar Swaminathan extern emlxs_sli_api_t emlxs_sli3_api; 588291a2b48SSukumar Swaminathan 589291a2b48SSukumar Swaminathan extern int emlxs_handle_rcv_seq(emlxs_hba_t *hba, 59082527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq); 591291a2b48SSukumar Swaminathan extern void emlxs_update_HBQ_index(emlxs_hba_t *hba, 592291a2b48SSukumar Swaminathan uint32_t hbq_id); 593291a2b48SSukumar Swaminathan extern void emlxs_hbq_free_all(emlxs_hba_t *hba, 594291a2b48SSukumar Swaminathan uint32_t hbq_id); 59582527734SSukumar Swaminathan 59682527734SSukumar Swaminathan /* Module emlxs_sli4.c External Routine Declarations */ 59782527734SSukumar Swaminathan extern int emlxs_sli4_unreg_all_rpi_by_port( 59882527734SSukumar Swaminathan emlxs_port_t *port); 59982527734SSukumar Swaminathan extern emlxs_sli_api_t emlxs_sli4_api; 60082527734SSukumar Swaminathan 60182527734SSukumar Swaminathan extern FCFIobj_t *emlxs_sli4_assign_fcfi(emlxs_hba_t *hba, 60282527734SSukumar Swaminathan FCF_RECORD_t *fcfrec); 60382527734SSukumar Swaminathan extern void emlxs_data_dump(emlxs_hba_t *hba, char *str, 60482527734SSukumar Swaminathan uint32_t *data, int cnt, int err); 60582527734SSukumar Swaminathan extern void emlxs_ue_dump(emlxs_hba_t *hba, char *str); 60682527734SSukumar Swaminathan 60782527734SSukumar Swaminathan extern RPIobj_t *emlxs_sli4_find_rpi(emlxs_hba_t *hba, 60882527734SSukumar Swaminathan uint16_t rpi); 60982527734SSukumar Swaminathan extern XRIobj_t *emlxs_sli4_find_xri(emlxs_hba_t *hba, 61082527734SSukumar Swaminathan uint16_t xri); 61182527734SSukumar Swaminathan 61282527734SSukumar Swaminathan extern RPIobj_t *emlxs_sli4_alloc_rpi(emlxs_port_t *port); 61382527734SSukumar Swaminathan 61482527734SSukumar Swaminathan extern void emlxs_sli4_free_rpi(emlxs_hba_t *hba, 61582527734SSukumar Swaminathan RPIobj_t *xp); 61682527734SSukumar Swaminathan extern VFIobj_t *emlxs_sli4_alloc_vfi(emlxs_hba_t *hba, 61782527734SSukumar Swaminathan FCFIobj_t *fp); 61882527734SSukumar Swaminathan extern void emlxs_sli4_free_vfi(emlxs_hba_t *hba, 61982527734SSukumar Swaminathan VFIobj_t *xp); 62082527734SSukumar Swaminathan extern void emlxs_sli4_free_fcfi(emlxs_hba_t *hba, 62182527734SSukumar Swaminathan FCFIobj_t *xp); 62282527734SSukumar Swaminathan extern void emlxs_sli4_free_xri(emlxs_hba_t *hba, 62382527734SSukumar Swaminathan emlxs_buf_t *sbp, XRIobj_t *xp); 62482527734SSukumar Swaminathan extern FCFIobj_t *emlxs_sli4_bind_fcfi(emlxs_hba_t *hba); 62582527734SSukumar Swaminathan 62682527734SSukumar Swaminathan extern uint32_t emlxs_sli4_unreserve_xri(emlxs_hba_t *hba, 62782527734SSukumar Swaminathan uint16_t xri); 628fcf3ce44SJohn Forte 629fcf3ce44SJohn Forte /* Module emlxs_diag.c External Routine Declarations */ 630291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_post_run(emlxs_hba_t *hba); 631291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_biu_run(emlxs_hba_t *hba, 632291a2b48SSukumar Swaminathan uint32_t pattern); 633291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_pattern[256]; 634291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_echo_run(emlxs_port_t *port, 635291a2b48SSukumar Swaminathan uint32_t did, uint32_t pattern); 636fcf3ce44SJohn Forte 637fcf3ce44SJohn Forte /* Module emlxs_download.c External Routine Declarations */ 638291a2b48SSukumar Swaminathan extern int32_t emlxs_fw_download(emlxs_hba_t *hba, 639291a2b48SSukumar Swaminathan caddr_t buffer, uint32_t len, 640291a2b48SSukumar Swaminathan uint32_t offline); 641291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_max_sram(emlxs_hba_t *hba, 642291a2b48SSukumar Swaminathan uint32_t *MaxRbusSize, 643291a2b48SSukumar Swaminathan uint32_t *MaxIbusSize); 644291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_load_list(emlxs_hba_t *hba, 645291a2b48SSukumar Swaminathan PROG_ID *load_list); 646291a2b48SSukumar Swaminathan extern uint32_t emlxs_read_wakeup_parms(emlxs_hba_t *hba, 647291a2b48SSukumar Swaminathan PWAKE_UP_PARMS WakeUpParms, 648291a2b48SSukumar Swaminathan uint32_t verbose); 649291a2b48SSukumar Swaminathan extern int32_t emlxs_cfl_download(emlxs_hba_t *hba, 650291a2b48SSukumar Swaminathan uint32_t region, caddr_t buffer, 651291a2b48SSukumar Swaminathan uint32_t len); 652291a2b48SSukumar Swaminathan 653291a2b48SSukumar Swaminathan extern int32_t emlxs_boot_code_disable(emlxs_hba_t *hba); 654291a2b48SSukumar Swaminathan extern int32_t emlxs_boot_code_enable(emlxs_hba_t *hba); 655291a2b48SSukumar Swaminathan extern int32_t emlxs_boot_code_state(emlxs_hba_t *hba); 656fcf3ce44SJohn Forte 65782527734SSukumar Swaminathan extern int32_t emlxs_sli4_read_fw_version(emlxs_hba_t *hba, 65882527734SSukumar Swaminathan emlxs_firmware_t *fw); 65982527734SSukumar Swaminathan 660fcf3ce44SJohn Forte /* Module emlxs_fcp.c External Routine Declarations */ 661291a2b48SSukumar Swaminathan extern int emlxs_power_up(emlxs_hba_t *hba); 662291a2b48SSukumar Swaminathan extern int emlxs_power_down(emlxs_hba_t *hba); 663291a2b48SSukumar Swaminathan extern int emlxs_reset_link(emlxs_hba_t *hba, 66482527734SSukumar Swaminathan uint32_t linkup, uint32_t wait); 66582527734SSukumar Swaminathan extern emlxs_buf_t *emlxs_unregister_pkt(CHANNEL *cp, 666291a2b48SSukumar Swaminathan uint16_t iotag, uint32_t forced); 66782527734SSukumar Swaminathan extern uint16_t emlxs_register_pkt(CHANNEL *cp, 668291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 669291a2b48SSukumar Swaminathan 670291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_abort_xri_cn(emlxs_port_t *port, 671291a2b48SSukumar Swaminathan NODELIST *ndlp, uint16_t iotag, 67282527734SSukumar Swaminathan CHANNEL *cp, uint8_t class, 67382527734SSukumar Swaminathan int32_t flag); 674291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_close_xri_cn(emlxs_port_t *port, 675291a2b48SSukumar Swaminathan NODELIST *ndlp, uint16_t iotag, 67682527734SSukumar Swaminathan CHANNEL *cp); 677291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_abort_xri_cx(emlxs_port_t *port, 67882527734SSukumar Swaminathan NODELIST *ndlp, uint16_t xid, 67982527734SSukumar Swaminathan CHANNEL *cp, uint8_t class, 68082527734SSukumar Swaminathan int32_t flag); 681291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_close_xri_cx(emlxs_port_t *port, 68282527734SSukumar Swaminathan NODELIST *ndlp, uint16_t xid, 68382527734SSukumar Swaminathan CHANNEL *cp); 684bb63f56eSSukumar Swaminathan extern void emlxs_abort_ct_exchange(emlxs_hba_t *hba, 685bb63f56eSSukumar Swaminathan emlxs_port_t *port, uint32_t rxid); 686fe199829SSukumar Swaminathan extern void emlxs_abort_els_exchange(emlxs_hba_t *hba, 687fe199829SSukumar Swaminathan emlxs_port_t *port, uint32_t rxid); 688fe199829SSukumar Swaminathan extern void emlxs_abort_fct_exchange(emlxs_hba_t *hba, 689fe199829SSukumar Swaminathan emlxs_port_t *port, uint32_t rxid); 69082527734SSukumar Swaminathan extern emlxs_buf_t *emlxs_chipq_get(CHANNEL *cp, uint16_t iotag); 69182527734SSukumar Swaminathan extern void emlxs_chipq_put(CHANNEL *cp, emlxs_buf_t *sbp); 692291a2b48SSukumar Swaminathan extern uint32_t emlxs_chipq_node_flush(emlxs_port_t *port, 69382527734SSukumar Swaminathan CHANNEL *cp, NODELIST *ndlp, 694291a2b48SSukumar Swaminathan emlxs_buf_t *fpkt); 695291a2b48SSukumar Swaminathan extern uint32_t emlxs_chipq_lun_flush(emlxs_port_t *port, 696291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t lun, 697291a2b48SSukumar Swaminathan emlxs_buf_t *fpkt); 698291a2b48SSukumar Swaminathan extern uint32_t emlxs_chipq_node_check(emlxs_port_t *port, 69982527734SSukumar Swaminathan CHANNEL *cp, NODELIST *ndlp); 700291a2b48SSukumar Swaminathan 70182527734SSukumar Swaminathan extern IOCBQ *emlxs_tx_get(CHANNEL *cp, uint32_t lock); 702291a2b48SSukumar Swaminathan extern void emlxs_tx_put(IOCBQ *iocbq, uint32_t lock); 70382527734SSukumar Swaminathan extern void emlxs_tx_move(NODELIST *ndlp, CHANNEL *from, 70482527734SSukumar Swaminathan CHANNEL *to, uint32_t cmd, 70582527734SSukumar Swaminathan emlxs_buf_t *fpkt, uint32_t lock); 70682527734SSukumar Swaminathan 707291a2b48SSukumar Swaminathan extern uint32_t emlxs_tx_node_check(emlxs_port_t *port, 70882527734SSukumar Swaminathan NODELIST *ndlp, CHANNEL *cp); 709291a2b48SSukumar Swaminathan extern uint32_t emlxs_tx_node_flush(emlxs_port_t *port, 71082527734SSukumar Swaminathan NODELIST *ndlp, CHANNEL *cp, 711291a2b48SSukumar Swaminathan uint32_t shutdown, emlxs_buf_t *fpkt); 712291a2b48SSukumar Swaminathan extern uint32_t emlxs_tx_lun_flush(emlxs_port_t *port, 713291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t lun, 714291a2b48SSukumar Swaminathan emlxs_buf_t *fpkt); 71582527734SSukumar Swaminathan extern uint32_t emlxs_tx_channel_flush(emlxs_hba_t *hba, 71682527734SSukumar Swaminathan CHANNEL *cp, emlxs_buf_t *fpkt); 717291a2b48SSukumar Swaminathan 718291a2b48SSukumar Swaminathan extern void emlxs_linkdown(emlxs_hba_t *hba); 719291a2b48SSukumar Swaminathan extern void emlxs_linkup(emlxs_hba_t *hba); 720291a2b48SSukumar Swaminathan extern void emlxs_port_online(emlxs_port_t *port); 721291a2b48SSukumar Swaminathan extern int32_t emlxs_port_offline(emlxs_port_t *port, 722291a2b48SSukumar Swaminathan uint32_t scope); 723291a2b48SSukumar Swaminathan extern void emlxs_ffcleanup(emlxs_hba_t *hba); 724291a2b48SSukumar Swaminathan extern int32_t emlxs_offline(emlxs_hba_t *hba); 725291a2b48SSukumar Swaminathan extern int32_t emlxs_online(emlxs_hba_t *hba); 726291a2b48SSukumar Swaminathan extern int32_t emlxs_post_buffer(emlxs_hba_t *hba, 727291a2b48SSukumar Swaminathan RING *rp, int16_t cnt); 728291a2b48SSukumar Swaminathan extern void emlxs_ff_start(emlxs_hba_t *hba); 729291a2b48SSukumar Swaminathan extern void emlxs_handle_fcp_event(emlxs_hba_t *hba, 73082527734SSukumar Swaminathan CHANNEL *rp, IOCBQ *temp); 731291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_abort(emlxs_hba_t *hba, 73282527734SSukumar Swaminathan CHANNEL *rp, IOCBQ *iocbq); 733fcf3ce44SJohn Forte 734fcf3ce44SJohn Forte /* Module emlxs_thread.c External Routine Declarations */ 735291a2b48SSukumar Swaminathan extern void emlxs_taskq_destroy(emlxs_taskq_t *taskq); 736291a2b48SSukumar Swaminathan extern void emlxs_taskq_create(emlxs_hba_t *hba, 737291a2b48SSukumar Swaminathan emlxs_taskq_t *taskq); 738291a2b48SSukumar Swaminathan extern uint32_t emlxs_taskq_dispatch(emlxs_taskq_t *taskq, 739291a2b48SSukumar Swaminathan void (*func) (), void *arg); 740291a2b48SSukumar Swaminathan extern void emlxs_thread_create(emlxs_hba_t *hba, 741291a2b48SSukumar Swaminathan emlxs_thread_t *ethread); 742291a2b48SSukumar Swaminathan extern void emlxs_thread_destroy(emlxs_thread_t *ethread); 743291a2b48SSukumar Swaminathan extern void emlxs_thread_trigger1(emlxs_thread_t *ethread, 744291a2b48SSukumar Swaminathan void (*func) ()); 745291a2b48SSukumar Swaminathan extern void emlxs_thread_trigger2(emlxs_thread_t *ethread, 74682527734SSukumar Swaminathan void (*func) (), CHANNEL *cp); 747bb63f56eSSukumar Swaminathan extern void emlxs_thread_spawn(emlxs_hba_t *hba, 748bb63f56eSSukumar Swaminathan void (*func) (), void *arg1, 749bb63f56eSSukumar Swaminathan void *arg2); 750bb63f56eSSukumar Swaminathan extern void emlxs_thread_spawn_create(emlxs_hba_t *hba); 751bb63f56eSSukumar Swaminathan extern void emlxs_thread_spawn_destroy(emlxs_hba_t *hba); 752fcf3ce44SJohn Forte 753fcf3ce44SJohn Forte /* Module emlxs_dfc.c External Routine Declarations */ 754291a2b48SSukumar Swaminathan extern int32_t emlxs_dfc_manage(emlxs_hba_t *hba, void *dfc, 755291a2b48SSukumar Swaminathan int32_t mode); 756291a2b48SSukumar Swaminathan extern int32_t emlxs_dfc_handle_event(emlxs_hba_t *hba, 75782527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *temp); 758291a2b48SSukumar Swaminathan extern int emlxs_dfc_handle_unsol_req(emlxs_port_t *port, 75982527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq, 76082527734SSukumar Swaminathan MATCHMAP *mp, uint32_t size); 761bb63f56eSSukumar Swaminathan extern void emlxs_fcoe_attention_thread(emlxs_hba_t *hba, 762bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 763291a2b48SSukumar Swaminathan extern uint32_t emlxs_set_hba_mode(emlxs_hba_t *hba, uint32_t mode); 764291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dump_region(emlxs_hba_t *hba, uint32_t region, 765291a2b48SSukumar Swaminathan uint8_t *buffer, uint32_t *psize); 766291a2b48SSukumar Swaminathan extern int32_t emlxs_send_menlo_cmd(emlxs_hba_t *hba, uint8_t *cmd_buf, 767291a2b48SSukumar Swaminathan uint32_t cmd_size, uint8_t *rsp_buf, 768291a2b48SSukumar Swaminathan uint32_t *rsp_size); 769fcf3ce44SJohn Forte 770fcf3ce44SJohn Forte #ifdef SFCT_SUPPORT 771fcf3ce44SJohn Forte /* Module emlxs_fct.c External Routine Declarations */ 772291a2b48SSukumar Swaminathan extern void emlxs_fct_link_down(emlxs_port_t *port); 773291a2b48SSukumar Swaminathan extern void emlxs_fct_link_up(emlxs_port_t *port); 774291a2b48SSukumar Swaminathan extern void emlxs_fct_init(emlxs_hba_t *hba); 775291a2b48SSukumar Swaminathan extern void emlxs_fct_detach(emlxs_hba_t *hba); 776291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_unsol_els(emlxs_port_t *port, 77782527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq, MATCHMAP *mp, 778291a2b48SSukumar Swaminathan uint32_t size); 779291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_unsol_req(emlxs_port_t *port, 78082527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq, MATCHMAP *mp, 781291a2b48SSukumar Swaminathan uint32_t size); 782291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_fcp_event(emlxs_hba_t *hba, 78382527734SSukumar Swaminathan CHANNEL *cp, IOCBQ *iocbq); 784291a2b48SSukumar Swaminathan extern void emlxs_fct_bind_port(emlxs_port_t *port); 785291a2b48SSukumar Swaminathan extern void emlxs_fct_unbind_port(emlxs_port_t *port); 786291a2b48SSukumar Swaminathan extern void emlxs_fct_unsol_callback(emlxs_port_t *port, 787291a2b48SSukumar Swaminathan fct_cmd_t *fct_cmd); 788291a2b48SSukumar Swaminathan extern void emlxs_fct_attach(emlxs_hba_t *hba); 789291a2b48SSukumar Swaminathan extern int emlxs_fct_port_shutdown(emlxs_port_t *port); 790291a2b48SSukumar Swaminathan extern int emlxs_fct_port_initialize(emlxs_port_t *port); 791fcf3ce44SJohn Forte 792fcf3ce44SJohn Forte #ifdef MODSYM_SUPPORT 793e51761e0SSukumar Swaminathan extern int emlxs_fct_modopen(); 794291a2b48SSukumar Swaminathan extern void emlxs_fct_modclose(); 795291a2b48SSukumar Swaminathan #endif /* MODSYM_SUPPORT */ 796291a2b48SSukumar Swaminathan 797291a2b48SSukumar Swaminathan #ifdef FCT_IO_TRACE 798291a2b48SSukumar Swaminathan extern void emlxs_fct_io_trace(emlxs_port_t *, 799291a2b48SSukumar Swaminathan fct_cmd_t *, uint32_t); 800291a2b48SSukumar Swaminathan #endif /* FCT_IO_TRACE */ 801291a2b48SSukumar Swaminathan #endif /* SFCT_SUPPORT */ 802291a2b48SSukumar Swaminathan 803291a2b48SSukumar Swaminathan #ifdef DUMP_SUPPORT 804291a2b48SSukumar Swaminathan /* Module emlxs_dump.c External Routine Declarations */ 805291a2b48SSukumar Swaminathan extern uint32_t emlxs_dump_drv_event(emlxs_hba_t *hba); 806291a2b48SSukumar Swaminathan extern uint32_t emlxs_dump_user_event(emlxs_hba_t *hba); 807291a2b48SSukumar Swaminathan extern uint32_t emlxs_dump_temp_event(emlxs_hba_t *hba, 808291a2b48SSukumar Swaminathan uint32_t tempType, uint32_t temp); 809bb63f56eSSukumar Swaminathan extern void emlxs_dump_drv_thread(emlxs_hba_t *hba, 810bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 811bb63f56eSSukumar Swaminathan extern void emlxs_dump_user_thread(emlxs_hba_t *hba, 812bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 813bb63f56eSSukumar Swaminathan extern void emlxs_dump_temp_thread(emlxs_hba_t *hba, 814bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 815291a2b48SSukumar Swaminathan extern uint32_t emlxs_ftell(emlxs_file_t *fp); 816291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dump(emlxs_hba_t *hba, uint8_t *buffer, 817291a2b48SSukumar Swaminathan uint32_t *buflen); 818291a2b48SSukumar Swaminathan extern void emlxs_dump_wait(emlxs_hba_t *hba); 819291a2b48SSukumar Swaminathan extern void emlxs_dump(emlxs_hba_t *hba, uint32_t type, 820291a2b48SSukumar Swaminathan uint32_t temp_type, uint32_t temp); 821291a2b48SSukumar Swaminathan 82282527734SSukumar Swaminathan extern emlxs_file_t *emlxs_fopen(emlxs_hba_t *hba, uint32_t file_type); 82382527734SSukumar Swaminathan extern void emlxs_fflush(emlxs_file_t *fp); 82482527734SSukumar Swaminathan extern uint32_t emlxs_fclose(emlxs_file_t *fp); 82582527734SSukumar Swaminathan extern uint32_t emlxs_dump_word_dmpfile(emlxs_file_t *fpDmpFile, 82682527734SSukumar Swaminathan uint8_t *pBuffer, uint32_t bufferLen, 82782527734SSukumar Swaminathan int fSwap); 828291a2b48SSukumar Swaminathan #endif /* DUMP_SUPPORT */ 829fcf3ce44SJohn Forte 830fcf3ce44SJohn Forte #ifdef __cplusplus 831fcf3ce44SJohn Forte } 832fcf3ce44SJohn Forte #endif 833fcf3ce44SJohn Forte 834fcf3ce44SJohn Forte #endif /* _EMLXS_EXTERN_H */ 835