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 /* 23291a2b48SSukumar Swaminathan * Copyright 2009 Emulex. All rights reserved. 24fcf3ce44SJohn Forte * Use is subject to License terms. 25fcf3ce44SJohn Forte */ 26fcf3ce44SJohn Forte 27fcf3ce44SJohn Forte 28fcf3ce44SJohn Forte #ifndef _EMLXS_EXTERN_H 29fcf3ce44SJohn Forte #define _EMLXS_EXTERN_H 30fcf3ce44SJohn Forte 31fcf3ce44SJohn Forte #ifdef __cplusplus 32fcf3ce44SJohn Forte extern "C" { 33fcf3ce44SJohn Forte #endif 34fcf3ce44SJohn Forte 35291a2b48SSukumar Swaminathan extern void *emlxs_soft_state; 36291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance[MAX_FC_BRDS]; 37291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance_count; 38291a2b48SSukumar Swaminathan extern char emlxs_revision[32]; 39291a2b48SSukumar Swaminathan extern char emlxs_version[32]; 40291a2b48SSukumar Swaminathan extern char emlxs_name[64]; 41291a2b48SSukumar Swaminathan extern char emlxs_label[64]; 42291a2b48SSukumar Swaminathan 43291a2b48SSukumar Swaminathan extern emlxs_device_t emlxs_device; 44291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance[MAX_FC_BRDS]; 45291a2b48SSukumar Swaminathan extern uint32_t emlxs_instance_count; 46291a2b48SSukumar Swaminathan 47291a2b48SSukumar Swaminathan extern ddi_device_acc_attr_t emlxs_data_acc_attr; 48291a2b48SSukumar Swaminathan extern ddi_device_acc_attr_t emlxs_dev_acc_attr; 49291a2b48SSukumar Swaminathan extern ddi_dma_lim_t emlxs_dma_lim; 50291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_state; 51291a2b48SSukumar Swaminathan extern emlxs_config_t emlxs_cfg[]; 52291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr; 53291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr_ro; 54291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr_fcip_rsp; 55291a2b48SSukumar Swaminathan extern ddi_dma_attr_t emlxs_dma_attr_1sg; 56fcf3ce44SJohn Forte 57fcf3ce44SJohn Forte /* Module emlxs_msg.c External Routine Declarations */ 58291a2b48SSukumar Swaminathan extern void emlxs_msg_printf(emlxs_port_t *port, 59291a2b48SSukumar Swaminathan const uint32_t fileno, 60291a2b48SSukumar Swaminathan const uint32_t line, 61291a2b48SSukumar Swaminathan void *bp, uint32_t size, 62291a2b48SSukumar Swaminathan emlxs_msg_t *msg, 63291a2b48SSukumar Swaminathan const char *fmt, ...); 64291a2b48SSukumar Swaminathan extern uint32_t emlxs_msg_log_create(emlxs_hba_t *hba); 65291a2b48SSukumar Swaminathan extern uint32_t emlxs_msg_log_destroy(emlxs_hba_t *hba); 66291a2b48SSukumar Swaminathan extern uint32_t emlxs_msg_log_get(emlxs_hba_t *hba, 67291a2b48SSukumar Swaminathan emlxs_log_req_t *req, 68291a2b48SSukumar Swaminathan emlxs_log_resp_t *resp); 69291a2b48SSukumar Swaminathan extern void emlxs_log_dump_event(emlxs_port_t *port, 70291a2b48SSukumar Swaminathan uint8_t *buffer, uint32_t size); 71291a2b48SSukumar Swaminathan extern void emlxs_log_link_event(emlxs_port_t *port); 72291a2b48SSukumar Swaminathan extern uint32_t emlxs_log_ct_event(emlxs_port_t *port, 73291a2b48SSukumar Swaminathan uint8_t *payload, uint32_t size, 74291a2b48SSukumar Swaminathan uint32_t rxid); 75291a2b48SSukumar Swaminathan extern void emlxs_log_rscn_event(emlxs_port_t *port, 76291a2b48SSukumar Swaminathan uint8_t *payload, uint32_t size); 77291a2b48SSukumar Swaminathan extern void emlxs_log_vportrscn_event(emlxs_port_t *port, 78291a2b48SSukumar Swaminathan uint8_t *payload, uint32_t size); 79291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dfc_event(emlxs_port_t *port, 80291a2b48SSukumar Swaminathan emlxs_dfc_event_t *dfc_event, 81291a2b48SSukumar Swaminathan uint32_t sleep); 82291a2b48SSukumar Swaminathan extern uint32_t emlxs_kill_dfc_event(emlxs_port_t *port, 83291a2b48SSukumar Swaminathan emlxs_dfc_event_t *dfc_event); 84291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dfc_eventinfo(emlxs_port_t *port, 85291a2b48SSukumar Swaminathan HBA_EVENTINFO *eventinfo, 86291a2b48SSukumar Swaminathan uint32_t *eventcount, 87291a2b48SSukumar Swaminathan uint32_t *missed); 88291a2b48SSukumar Swaminathan extern void emlxs_log_temp_event(emlxs_port_t *port, 89291a2b48SSukumar Swaminathan uint32_t type, uint32_t temp); 90291a2b48SSukumar Swaminathan extern void emlxs_log_fcoe_event(emlxs_port_t *port, 91291a2b48SSukumar Swaminathan menlo_init_rsp_t *init_rsp); 92291a2b48SSukumar Swaminathan extern void emlxs_log_async_event(emlxs_port_t *port, 93291a2b48SSukumar Swaminathan IOCB *iocb); 94fcf3ce44SJohn Forte 95fcf3ce44SJohn Forte /* Module emlxs_solaris.c External Routine Declarations */ 96291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_abort(opaque_t fca_port_handle, 97291a2b48SSukumar Swaminathan fc_packet_t *pkt, int32_t sleep); 98291a2b48SSukumar Swaminathan extern char *emlxs_state_xlate(uint8_t state); 99291a2b48SSukumar Swaminathan extern char *emlxs_error_xlate(uint8_t errno); 100291a2b48SSukumar Swaminathan extern void emlxs_mem_free(emlxs_hba_t *hba, 101291a2b48SSukumar Swaminathan MBUF_INFO *buf_info); 102291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_alloc(emlxs_hba_t *hba, 103291a2b48SSukumar Swaminathan MBUF_INFO *buf_info); 104291a2b48SSukumar Swaminathan extern int emlxs_map_bus(emlxs_hba_t *hba); 105291a2b48SSukumar Swaminathan extern void emlxs_unmap_bus(emlxs_hba_t *hba); 106291a2b48SSukumar Swaminathan extern fc_unsol_buf_t *emlxs_ub_find(emlxs_port_t *port, 107291a2b48SSukumar Swaminathan uint32_t token); 108291a2b48SSukumar Swaminathan extern fc_unsol_buf_t *emlxs_ub_get(emlxs_port_t *port, uint32_t size, 109291a2b48SSukumar Swaminathan uint32_t type, uint32_t resv); 110291a2b48SSukumar Swaminathan extern int32_t emlxs_log_printf(int32_t f, int32_t type, 111291a2b48SSukumar Swaminathan int32_t num, int32_t brdno, 112291a2b48SSukumar Swaminathan const char *fmt, ...); 113291a2b48SSukumar Swaminathan extern void emlxs_set_pkt_state(emlxs_buf_t *sbp, 114291a2b48SSukumar Swaminathan uint32_t iostat, uint8_t localstat, 115291a2b48SSukumar Swaminathan uint32_t lock); 116291a2b48SSukumar Swaminathan extern char *emlxs_elscmd_xlate(uint32_t cmd); 117291a2b48SSukumar Swaminathan extern char *emlxs_ctcmd_xlate(uint32_t cmd); 118291a2b48SSukumar Swaminathan extern char *emlxs_rmcmd_xlate(uint32_t cmd); 119291a2b48SSukumar Swaminathan extern char *emlxs_wwn_xlate(char *buffer, uint8_t *wwn); 120291a2b48SSukumar Swaminathan extern int32_t emlxs_transport(opaque_t fca_port_handle, 121291a2b48SSukumar Swaminathan fc_packet_t *pkt); 122291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_uninit(opaque_t fca_port_handle, 123291a2b48SSukumar Swaminathan fc_packet_t *pkt); 124291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_init(opaque_t fca_port_handle, 125291a2b48SSukumar Swaminathan fc_packet_t *pkt, int32_t sleep); 126291a2b48SSukumar Swaminathan extern void emlxs_pkt_complete(emlxs_buf_t *sbp, 127291a2b48SSukumar Swaminathan uint32_t iostat, uint8_t localstat, 128291a2b48SSukumar Swaminathan uint32_t doneq); 129291a2b48SSukumar Swaminathan 130291a2b48SSukumar Swaminathan #ifdef SAN_DIAG_SUPPORT 131291a2b48SSukumar Swaminathan extern void emlxs_update_sd_bucket(emlxs_buf_t *sbp); 132291a2b48SSukumar Swaminathan #endif /* SAN_DIAG_SUPPORT */ 133291a2b48SSukumar Swaminathan 134291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_instance(int32_t ddiinst); 135291a2b48SSukumar Swaminathan extern char *emlxs_mscmd_xlate(uint16_t cmd); 136291a2b48SSukumar Swaminathan extern int32_t emlxs_reset(opaque_t fca_port_handle, 137291a2b48SSukumar Swaminathan uint32_t cmd); 138291a2b48SSukumar Swaminathan extern void emlxs_swap_service_params(SERV_PARM *sp); 139291a2b48SSukumar Swaminathan extern void emlxs_swap_fcp_pkt(emlxs_buf_t *sbp); 140291a2b48SSukumar Swaminathan extern void emlxs_swap_ct_pkt(emlxs_buf_t *sbp); 141291a2b48SSukumar Swaminathan extern void emlxs_swap_els_pkt(emlxs_buf_t *sbp); 142291a2b48SSukumar Swaminathan extern int emlxs_ub_release(opaque_t fca_port_handle, 143291a2b48SSukumar Swaminathan uint32_t count, uint64_t tokens[]); 144291a2b48SSukumar Swaminathan extern void emlxs_swap_els_ub(fc_unsol_buf_t *ubp); 145291a2b48SSukumar Swaminathan extern void emlxs_unswap_pkt(emlxs_buf_t *sbp); 146291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_key(emlxs_hba_t *hba, MAILBOX *mb); 147291a2b48SSukumar Swaminathan extern int emlxs_pm_busy_component(dev_info_t *dip); 148291a2b48SSukumar Swaminathan extern int emlxs_pm_idle_component(dev_info_t *dip); 149291a2b48SSukumar Swaminathan extern void emlxs_pm_idle_timer(dev_info_t *dip); 150*bb63f56eSSukumar Swaminathan extern void emlxs_shutdown_thread(emlxs_hba_t *hba, 151*bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 152291a2b48SSukumar Swaminathan extern uint32_t emlxs_set_parm(emlxs_hba_t *hba, uint32_t index, 153291a2b48SSukumar Swaminathan uint32_t new_value); 154291a2b48SSukumar Swaminathan extern void emlxs_ub_destroy(emlxs_port_t *port, 155291a2b48SSukumar Swaminathan emlxs_unsol_buf_t *pool); 156291a2b48SSukumar Swaminathan extern void emlxs_ub_callback(emlxs_port_t *port, 157291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp); 158291a2b48SSukumar Swaminathan extern void emlxs_ub_flush(emlxs_port_t *port); 159291a2b48SSukumar Swaminathan extern uint32_t emlxs_check_parm(emlxs_hba_t *hba, 160291a2b48SSukumar Swaminathan uint32_t index, uint32_t new_value); 161291a2b48SSukumar Swaminathan extern int32_t emlxs_port_manage(opaque_t fca_port_handle, 162291a2b48SSukumar Swaminathan fc_fca_pm_t *pm); 163291a2b48SSukumar Swaminathan extern void emlxs_port_init(emlxs_port_t *port); 164291a2b48SSukumar Swaminathan extern void emlxs_get_fcode_version(emlxs_hba_t *hba); 165fcf3ce44SJohn Forte 166fcf3ce44SJohn Forte #ifdef MENLO_SUPPORT 167291a2b48SSukumar Swaminathan extern char *emlxs_menlo_cmd_xlate(uint32_t cmd); 168291a2b48SSukumar Swaminathan extern char *emlxs_menlo_rsp_xlate(uint32_t rsp); 169291a2b48SSukumar Swaminathan #endif /* MENLO_SUPPORT */ 170291a2b48SSukumar Swaminathan 171291a2b48SSukumar Swaminathan #ifdef FMA_SUPPORT 172291a2b48SSukumar Swaminathan extern void emlxs_fm_init(emlxs_hba_t *hba); 173291a2b48SSukumar Swaminathan extern void emlxs_fm_fini(emlxs_hba_t *hba); 174*bb63f56eSSukumar Swaminathan extern int emlxs_fm_check_acc_handle(emlxs_hba_t *hba, 175291a2b48SSukumar Swaminathan ddi_acc_handle_t handle); 176*bb63f56eSSukumar Swaminathan extern int emlxs_fm_check_dma_handle(emlxs_hba_t *hba, 177291a2b48SSukumar Swaminathan ddi_dma_handle_t handle); 178291a2b48SSukumar Swaminathan extern void emlxs_fm_ereport(emlxs_hba_t *hba, 179291a2b48SSukumar Swaminathan char *detail); 180*bb63f56eSSukumar Swaminathan extern void emlxs_fm_service_impact(emlxs_hba_t *hba, 181*bb63f56eSSukumar Swaminathan int impact); 182291a2b48SSukumar Swaminathan extern int emlxs_fm_error_cb(dev_info_t *dip, 183291a2b48SSukumar Swaminathan ddi_fm_error_t *err, 184291a2b48SSukumar Swaminathan const void *impl_data); 185291a2b48SSukumar Swaminathan #endif /* FMA_SUPPORT */ 186fcf3ce44SJohn Forte 187fcf3ce44SJohn Forte /* Module emlxs_pkt.c External Routine Declarations */ 188291a2b48SSukumar Swaminathan extern int32_t emlxs_pkt_send(fc_packet_t *pkt, uint32_t now); 189291a2b48SSukumar Swaminathan extern void emlxs_pkt_free(fc_packet_t *pkt); 190291a2b48SSukumar Swaminathan extern void emlxs_pkt_callback(fc_packet_t *pkt); 191291a2b48SSukumar Swaminathan extern fc_packet_t *emlxs_pkt_alloc(emlxs_port_t *port, 192291a2b48SSukumar Swaminathan uint32_t cmdlen, uint32_t rsplen, 193291a2b48SSukumar Swaminathan uint32_t datalen, int32_t sleep); 194fcf3ce44SJohn Forte 195fcf3ce44SJohn Forte /* Module emlxs_clock.c External Routine Declarations */ 196291a2b48SSukumar Swaminathan extern void emlxs_timer_checks(emlxs_hba_t *hba); 197291a2b48SSukumar Swaminathan extern void emlxs_timer_start(emlxs_hba_t *hba); 198291a2b48SSukumar Swaminathan extern void emlxs_timer_stop(emlxs_hba_t *hba); 199291a2b48SSukumar Swaminathan extern void emlxs_link_timeout(emlxs_hba_t *hba); 200291a2b48SSukumar Swaminathan extern clock_t emlxs_timeout(emlxs_hba_t *hba, 201291a2b48SSukumar Swaminathan uint32_t timeout); 202fcf3ce44SJohn Forte 203fcf3ce44SJohn Forte /* Module emlxs_dhchap.c External Routine Declarations */ 204fcf3ce44SJohn Forte #ifdef DHCHAP_SUPPORT 205291a2b48SSukumar Swaminathan extern int emlxs_dhchap_state_machine(emlxs_port_t *port, 206291a2b48SSukumar Swaminathan RING *ring, IOCBQ *iocbq, MATCHMAP *mp, 207291a2b48SSukumar Swaminathan NODELIST *node, int event); 208291a2b48SSukumar Swaminathan 209291a2b48SSukumar Swaminathan extern void emlxs_dhc_attach(emlxs_hba_t *hba); 210291a2b48SSukumar Swaminathan extern void emlxs_dhc_detach(emlxs_hba_t *hba); 211291a2b48SSukumar Swaminathan extern void emlxs_dhc_authrsp_timeout(emlxs_port_t *port, 212291a2b48SSukumar Swaminathan void *node, void *null); 213291a2b48SSukumar Swaminathan extern void emlxs_dhc_reauth_timeout(emlxs_port_t *port, 214291a2b48SSukumar Swaminathan void *newtimeout, void *node); 215291a2b48SSukumar Swaminathan extern void emlxs_dhc_auth_stop(emlxs_port_t *port, 216291a2b48SSukumar Swaminathan emlxs_node_t *node); 217291a2b48SSukumar Swaminathan extern int emlxs_dhc_auth_start(emlxs_port_t *port, 218291a2b48SSukumar Swaminathan emlxs_node_t *node, uint8_t *sbp, 219291a2b48SSukumar Swaminathan uint8_t *ubp); 220291a2b48SSukumar Swaminathan extern void emlxs_dhc_init_sp(emlxs_port_t *port, 221291a2b48SSukumar Swaminathan uint32_t did, SERV_PARM *sp, 222291a2b48SSukumar Swaminathan char **msg); 223291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_verify_login(emlxs_port_t *port, 224291a2b48SSukumar Swaminathan uint32_t sid, SERV_PARM *sp); 225291a2b48SSukumar Swaminathan extern void emlxs_dhc_status(emlxs_port_t *port, 226291a2b48SSukumar Swaminathan emlxs_node_t *ndlp, uint32_t reason, 227291a2b48SSukumar Swaminathan uint32_t explaination); 228291a2b48SSukumar Swaminathan extern void emlxs_dhc_state(emlxs_port_t *port, 229291a2b48SSukumar Swaminathan emlxs_node_t *ndlp, uint32_t state, 230291a2b48SSukumar Swaminathan uint32_t reason, 231291a2b48SSukumar Swaminathan uint32_t explaination); 232291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_init_auth(emlxs_hba_t *hba, 233291a2b48SSukumar Swaminathan uint8_t *lwwpn, uint8_t *rwwpn); 234291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_cfg(emlxs_hba_t *hba, 235291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg); 236291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_key(emlxs_hba_t *hba, 237291a2b48SSukumar Swaminathan dfc_auth_password_t *dfc_auth_pwd); 238291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_add_auth_cfg(emlxs_hba_t *hba, 239291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg, 240291a2b48SSukumar Swaminathan dfc_password_t *dfc_pwd); 241291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_delete_auth_cfg(emlxs_hba_t *hba, 242291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg, 243291a2b48SSukumar Swaminathan dfc_password_t *dfc_pwd); 244291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_set_auth_key(emlxs_hba_t *hba, 245291a2b48SSukumar Swaminathan dfc_auth_password_t *dfc_pwd); 246291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_status(emlxs_hba_t *hba, 247291a2b48SSukumar Swaminathan dfc_auth_status_t *fcsp_status); 248291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_cfg_table(emlxs_hba_t *hba, 249291a2b48SSukumar Swaminathan dfc_fcsp_config_t *fcsp_cfg); 250291a2b48SSukumar Swaminathan extern uint32_t emlxs_dhc_get_auth_key_table(emlxs_hba_t *hba, 251291a2b48SSukumar Swaminathan dfc_auth_password_t *auth_pwd); 252fcf3ce44SJohn Forte #endif /* DHCHAP_SUPPORT */ 253fcf3ce44SJohn Forte 254fcf3ce44SJohn Forte /* Module emlxs_node.c External Routine Declarations */ 255291a2b48SSukumar Swaminathan extern void emlxs_node_timeout(emlxs_port_t *port, 256291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t ringno); 257291a2b48SSukumar Swaminathan extern void emlxs_node_open(emlxs_port_t *port, 258291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t ringno); 259291a2b48SSukumar Swaminathan extern void emlxs_node_close(emlxs_port_t *port, 260291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t ringno, 261291a2b48SSukumar Swaminathan int32_t timeout); 262291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_did(emlxs_port_t *port, 263291a2b48SSukumar Swaminathan uint32_t did); 264291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_rpi(emlxs_port_t *port, 265291a2b48SSukumar Swaminathan uint32_t rpi); 266291a2b48SSukumar Swaminathan extern void emlxs_node_destroy_all(emlxs_port_t *port); 267291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_mac(emlxs_port_t *port, 268291a2b48SSukumar Swaminathan uint8_t *mac); 269291a2b48SSukumar Swaminathan extern void emlxs_node_add(emlxs_port_t *port, 270291a2b48SSukumar Swaminathan NODELIST *ndlp); 271291a2b48SSukumar Swaminathan extern void emlxs_node_rm(emlxs_port_t *port, 272291a2b48SSukumar Swaminathan NODELIST *ndlp); 273291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_wwpn(emlxs_port_t *port, 274291a2b48SSukumar Swaminathan uint8_t *wwpn); 275291a2b48SSukumar Swaminathan extern NODELIST *emlxs_node_find_index(emlxs_port_t *port, 276291a2b48SSukumar Swaminathan uint32_t index, uint32_t nports_only); 277291a2b48SSukumar Swaminathan extern uint32_t emlxs_nport_count(emlxs_port_t *port); 278fcf3ce44SJohn Forte 279fcf3ce44SJohn Forte /* Module emlxs_els.c External Routine Declarations */ 280291a2b48SSukumar Swaminathan extern int32_t emlxs_els_handle_event(emlxs_hba_t *hba, 281291a2b48SSukumar Swaminathan RING *rp, IOCBQ *temp); 282291a2b48SSukumar Swaminathan extern int32_t emlxs_els_handle_unsol_req(emlxs_port_t *port, 283291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq, MATCHMAP *mp, 284291a2b48SSukumar Swaminathan uint32_t size); 285291a2b48SSukumar Swaminathan extern uint32_t emlxs_generate_rscn(emlxs_port_t *port, 286291a2b48SSukumar Swaminathan uint32_t d_id); 287291a2b48SSukumar Swaminathan extern int32_t emlxs_ct_handle_event(emlxs_hba_t *hba, 288291a2b48SSukumar Swaminathan RING *rp, IOCBQ *temp); 289291a2b48SSukumar Swaminathan extern int32_t emlxs_ct_handle_unsol_req(emlxs_port_t *port, 290291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq, MATCHMAP *mp, 291291a2b48SSukumar Swaminathan uint32_t size); 292291a2b48SSukumar Swaminathan extern int32_t emlxs_els_reply(emlxs_port_t *port, 293291a2b48SSukumar Swaminathan IOCBQ *iocbq, uint32_t type, 294291a2b48SSukumar Swaminathan uint32_t type2, uint32_t reason, 295291a2b48SSukumar Swaminathan uint32_t explain); 296291a2b48SSukumar Swaminathan extern void emlxs_send_logo(emlxs_port_t *port, 297291a2b48SSukumar Swaminathan uint32_t d_id); 298*bb63f56eSSukumar Swaminathan extern void emlxs_reset_link_thread(emlxs_hba_t *hba, 299*bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 300291a2b48SSukumar Swaminathan extern uint32_t emlxs_process_unsol_flogi(emlxs_port_t *port, 301291a2b48SSukumar Swaminathan IOCBQ *iocbq, MATCHMAP *mp, 302291a2b48SSukumar Swaminathan uint32_t size, char *buffer); 303291a2b48SSukumar Swaminathan extern uint32_t emlxs_process_unsol_plogi(emlxs_port_t *port, 304291a2b48SSukumar Swaminathan IOCBQ *iocbq, MATCHMAP *mp, 305291a2b48SSukumar Swaminathan uint32_t size, char *buffer); 306291a2b48SSukumar Swaminathan extern uint32_t emlxs_ub_send_login_acc(emlxs_port_t *port, 307291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp); 308fcf3ce44SJohn Forte 309fcf3ce44SJohn Forte #ifdef MENLO_SUPPORT 310291a2b48SSukumar Swaminathan extern int emlxs_menlo_handle_event(emlxs_hba_t *hba, 311291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq); 312291a2b48SSukumar Swaminathan #endif /* MENLO_SUPPORT */ 313fcf3ce44SJohn Forte 314fcf3ce44SJohn Forte /* Module emlxs_ip.c External Routine Declarations */ 315291a2b48SSukumar Swaminathan extern int32_t emlxs_ip_handle_event(emlxs_hba_t *hba, 316291a2b48SSukumar Swaminathan RING *rp, IOCBQ *temp); 317291a2b48SSukumar Swaminathan extern int emlxs_ip_handle_rcv_seq_list(emlxs_hba_t *hba, 318291a2b48SSukumar Swaminathan RING *rp, IOCBQ *saveq); 319291a2b48SSukumar Swaminathan extern int emlxs_ip_handle_unsol_req(emlxs_port_t *port, 320291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq, MATCHMAP *mp, 321291a2b48SSukumar Swaminathan uint32_t size); 322291a2b48SSukumar Swaminathan extern int emlxs_create_xri(emlxs_port_t *port, RING *rp, 323291a2b48SSukumar Swaminathan NODELIST *ndlp); 324291a2b48SSukumar Swaminathan extern int emlxs_handle_create_xri(emlxs_hba_t *hba, 325291a2b48SSukumar Swaminathan RING *rp, IOCBQ *temp); 326291a2b48SSukumar Swaminathan extern int emlxs_handle_xri_aborted(emlxs_hba_t *hba, 327291a2b48SSukumar Swaminathan RING *rp, IOCBQ *temp); 328fcf3ce44SJohn Forte 329fcf3ce44SJohn Forte /* Module emlxs_mbox.c External Routine Declarations */ 330291a2b48SSukumar Swaminathan extern void emlxs_mb_config_msi(emlxs_hba_t *hba, 331291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t *intr_map, 332291a2b48SSukumar Swaminathan uint32_t intr_count); 333291a2b48SSukumar Swaminathan extern void emlxs_mb_config_msix(emlxs_hba_t *hba, 334291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t *intr_map, 335291a2b48SSukumar Swaminathan uint32_t intr_count); 336291a2b48SSukumar Swaminathan extern void emlxs_mb_read_lnk_stat(emlxs_hba_t *hba, 337291a2b48SSukumar Swaminathan MAILBOX *mb); 338291a2b48SSukumar Swaminathan extern void emlxs_mb_config_link(emlxs_hba_t *hba, 339291a2b48SSukumar Swaminathan MAILBOX *mb); 340291a2b48SSukumar Swaminathan extern void emlxs_mb_config_ring(emlxs_hba_t *hba, 341291a2b48SSukumar Swaminathan int32_t ring, MAILBOX *mb); 342291a2b48SSukumar Swaminathan extern void emlxs_mb_init_link(emlxs_hba_t *hba, 343291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t topology, 344291a2b48SSukumar Swaminathan uint32_t linkspeed); 345291a2b48SSukumar Swaminathan extern void emlxs_mb_down_link(emlxs_hba_t *hba, 346291a2b48SSukumar Swaminathan MAILBOX *mb); 347291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_la(emlxs_hba_t *hba, 348291a2b48SSukumar Swaminathan MAILBOX *mb); 349291a2b48SSukumar Swaminathan extern void emlxs_mb_read_nv(emlxs_hba_t *hba, 350291a2b48SSukumar Swaminathan MAILBOX *mb); 351291a2b48SSukumar Swaminathan extern void emlxs_mb_read_rev(emlxs_hba_t *hba, 352291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t v3); 353291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_rpi(emlxs_hba_t *hba, 354291a2b48SSukumar Swaminathan uint32_t rpi, MAILBOX *mb, 355291a2b48SSukumar Swaminathan uint32_t flg); 356291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_xri(emlxs_hba_t *hba, 357291a2b48SSukumar Swaminathan uint32_t xri, MAILBOX *mb, 358291a2b48SSukumar Swaminathan uint32_t flg); 359291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_read_sparam(emlxs_hba_t *hba, 360291a2b48SSukumar Swaminathan MAILBOX *mb); 361291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_reg_did(emlxs_port_t *port, 362291a2b48SSukumar Swaminathan uint32_t did, SERV_PARM *param, 363291a2b48SSukumar Swaminathan emlxs_buf_t *sbp, fc_unsol_buf_t *ubp, 364291a2b48SSukumar Swaminathan IOCBQ *iocbq); 365291a2b48SSukumar Swaminathan extern void emlxs_disable_tc(emlxs_hba_t *hba, 366291a2b48SSukumar Swaminathan MAILBOX *mb); 367291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_run_biu_diag(emlxs_hba_t *hba, 368291a2b48SSukumar Swaminathan MAILBOX *mb, uint64_t in, uint64_t out); 369291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_unreg_rpi(emlxs_port_t *port, 370291a2b48SSukumar Swaminathan uint32_t rpi, emlxs_buf_t *sbp, 371291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp, IOCBQ *iocbq); 372291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_unreg_did(emlxs_port_t *port, 373291a2b48SSukumar Swaminathan uint32_t did, emlxs_buf_t *sbp, 374291a2b48SSukumar Swaminathan fc_unsol_buf_t *ubp, IOCBQ *iocbq); 375291a2b48SSukumar Swaminathan extern void emlxs_mb_dump_vpd(emlxs_hba_t *hba, 376291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t offset); 377291a2b48SSukumar Swaminathan extern void emlxs_mb_config_farp(emlxs_hba_t *hba, 378291a2b48SSukumar Swaminathan MAILBOX *mb); 379291a2b48SSukumar Swaminathan extern void emlxs_mb_read_config(emlxs_hba_t *hba, 380291a2b48SSukumar Swaminathan MAILBOX *mb); 381291a2b48SSukumar Swaminathan extern void emlxs_mb_put(emlxs_hba_t *hba, 382291a2b48SSukumar Swaminathan MAILBOXQ *mbq); 383291a2b48SSukumar Swaminathan extern MAILBOXQ *emlxs_mb_get(emlxs_hba_t *hba); 384291a2b48SSukumar Swaminathan extern void emlxs_mb_clear_la(emlxs_hba_t *hba, 385291a2b48SSukumar Swaminathan MAILBOX *mb); 386291a2b48SSukumar Swaminathan extern void emlxs_mb_set_var(emlxs_hba_t *hba, 387291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t addr, 388291a2b48SSukumar Swaminathan uint32_t value); 389291a2b48SSukumar Swaminathan extern void emlxs_mb_reset_ring(emlxs_hba_t *hba, 390291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t ringno); 391291a2b48SSukumar Swaminathan extern char *emlxs_mb_cmd_xlate(uint8_t command); 392291a2b48SSukumar Swaminathan extern void emlxs_mb_read_status(emlxs_hba_t *hba, 393291a2b48SSukumar Swaminathan MAILBOX *mb); 394291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_reg_vpi(emlxs_port_t *port); 395291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_unreg_vpi(emlxs_port_t *port); 396291a2b48SSukumar Swaminathan extern void emlxs_mb_fini(emlxs_hba_t *hba, 397291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t mbxStatus); 398291a2b48SSukumar Swaminathan extern void emlxs_mb_heartbeat(emlxs_hba_t *hba, 399291a2b48SSukumar Swaminathan MAILBOX *mb); 400291a2b48SSukumar Swaminathan extern void emlxs_mb_async_event(emlxs_hba_t *hba, 401291a2b48SSukumar Swaminathan MAILBOX *mb); 402291a2b48SSukumar Swaminathan extern int32_t emlxs_mb_check_sparm(emlxs_hba_t *hba, 403291a2b48SSukumar Swaminathan SERV_PARM *nsp); 404291a2b48SSukumar Swaminathan extern void emlxs_mb_dump(emlxs_hba_t *hba, MAILBOX *mb, 405291a2b48SSukumar Swaminathan uint32_t offset, uint32_t words); 406291a2b48SSukumar Swaminathan extern void emlxs_mb_retry(emlxs_hba_t *hba, MAILBOX *mb); 407291a2b48SSukumar Swaminathan extern void emlxs_mb_init(emlxs_hba_t *hba, MAILBOXQ *mbq, 408291a2b48SSukumar Swaminathan uint32_t flag, uint32_t tmo); 409fcf3ce44SJohn Forte 410fcf3ce44SJohn Forte #ifdef SLI3_SUPPORT 411291a2b48SSukumar Swaminathan extern void emlxs_mb_config_hbq(emlxs_hba_t *hba, 412291a2b48SSukumar Swaminathan MAILBOX *mb, int hbq_id); 413fcf3ce44SJohn Forte #endif /* SLI3_SUPPORT */ 414fcf3ce44SJohn Forte 415fcf3ce44SJohn Forte /* Module emlxs_mem.c External Routine Declarations */ 416291a2b48SSukumar Swaminathan extern MATCHMAP *emlxs_mem_get_vaddr(emlxs_hba_t *hba, 417291a2b48SSukumar Swaminathan RING *rp, uint64_t mapbp); 418291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_get(emlxs_hba_t *hba, 419291a2b48SSukumar Swaminathan uint32_t seg); 420291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_put(emlxs_hba_t *hba, 421291a2b48SSukumar Swaminathan uint32_t seg, uint8_t *bp); 422291a2b48SSukumar Swaminathan extern int32_t emlxs_mem_free_buffer(emlxs_hba_t *hba); 423291a2b48SSukumar Swaminathan extern int32_t emlxs_mem_alloc_buffer(emlxs_hba_t *hba); 424291a2b48SSukumar Swaminathan extern void emlxs_mem_map_vaddr(emlxs_hba_t *hba, 425291a2b48SSukumar Swaminathan RING *rp, MATCHMAP *mp, uint32_t *haddr, 426291a2b48SSukumar Swaminathan uint32_t *laddr); 427291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_buf_alloc(emlxs_hba_t *hba); 428291a2b48SSukumar Swaminathan extern uint8_t *emlxs_mem_buf_free(emlxs_hba_t *hba, 429291a2b48SSukumar Swaminathan uint8_t *bp); 430fcf3ce44SJohn Forte #ifdef SLI3_SUPPORT 431291a2b48SSukumar Swaminathan extern uint32_t emlxs_hbq_alloc(emlxs_hba_t *hba, 432291a2b48SSukumar Swaminathan uint32_t hbq_id); 433fcf3ce44SJohn Forte #endif /* SLI3_SUPPORT */ 434fcf3ce44SJohn Forte 435fcf3ce44SJohn Forte /* Module emlxs_hba.c External Routine Declarations */ 436291a2b48SSukumar Swaminathan extern int emlxs_ffinit(emlxs_hba_t *hba); 437291a2b48SSukumar Swaminathan extern void emlxs_decode_firmware_rev(emlxs_hba_t *hba, 438291a2b48SSukumar Swaminathan emlxs_vpd_t *vp); 439291a2b48SSukumar Swaminathan extern uint32_t emlxs_init_adapter_info(emlxs_hba_t *hba); 440291a2b48SSukumar Swaminathan extern uint32_t emlxs_strtol(char *str, uint32_t base); 441291a2b48SSukumar Swaminathan extern uint64_t emlxs_strtoll(char *str, uint32_t base); 442291a2b48SSukumar Swaminathan extern void emlxs_decode_version(uint32_t version, 443291a2b48SSukumar Swaminathan char *buffer); 444291a2b48SSukumar Swaminathan extern char *emlxs_ffstate_xlate(uint32_t new_state); 445291a2b48SSukumar Swaminathan extern char *emlxs_ring_xlate(uint32_t ringno); 446291a2b48SSukumar Swaminathan extern void emlxs_proc_ring(emlxs_hba_t *hba, 447291a2b48SSukumar Swaminathan RING *rp, void *arg2); 448291a2b48SSukumar Swaminathan extern void emlxs_pcix_mxr_update(emlxs_hba_t *hba, 449291a2b48SSukumar Swaminathan uint32_t verbose); 450*bb63f56eSSukumar Swaminathan extern void emlxs_restart_thread(emlxs_hba_t *hba, 451*bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 452291a2b48SSukumar Swaminathan extern void emlxs_fw_show(emlxs_hba_t *hba); 453291a2b48SSukumar Swaminathan extern void emlxs_proc_ring_event(emlxs_hba_t *hba, 454291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq); 455291a2b48SSukumar Swaminathan 456fcf3ce44SJohn Forte 457fcf3ce44SJohn Forte #ifdef MSI_SUPPORT 458291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_add(emlxs_hba_t *hba); 459291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_remove(emlxs_hba_t *hba); 460291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_init(emlxs_hba_t *hba, uint32_t max); 461291a2b48SSukumar Swaminathan extern int32_t emlxs_msi_uninit(emlxs_hba_t *hba); 462fcf3ce44SJohn Forte #endif /* MSI_SUPPORT */ 463fcf3ce44SJohn Forte 464291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_add(emlxs_hba_t *hba); 465291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_remove(emlxs_hba_t *hba); 466291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_init(emlxs_hba_t *hba, uint32_t max); 467291a2b48SSukumar Swaminathan extern int32_t emlxs_intx_uninit(emlxs_hba_t *hba); 468291a2b48SSukumar Swaminathan 469291a2b48SSukumar Swaminathan /* Module emlxs_sli.c External Routine Declarations */ 470291a2b48SSukumar Swaminathan extern int emlxs_sli3_map_hdw(emlxs_hba_t *hba); 471291a2b48SSukumar Swaminathan extern int emlxs_sli4_map_hdw(emlxs_hba_t *hba); 472291a2b48SSukumar Swaminathan 473291a2b48SSukumar Swaminathan extern void emlxs_sli3_unmap_hdw(emlxs_hba_t *hba); 474291a2b48SSukumar Swaminathan extern void emlxs_sli4_unmap_hdw(emlxs_hba_t *hba); 475291a2b48SSukumar Swaminathan 476291a2b48SSukumar Swaminathan extern int32_t emlxs_sli3_online(emlxs_hba_t *hba); 477291a2b48SSukumar Swaminathan extern int32_t emlxs_sli4_online(emlxs_hba_t *hba); 478fcf3ce44SJohn Forte 479291a2b48SSukumar Swaminathan extern void emlxs_sli3_offline(emlxs_hba_t *hba); 480291a2b48SSukumar Swaminathan extern void emlxs_sli4_offline(emlxs_hba_t *hba); 481291a2b48SSukumar Swaminathan 482291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_hba_reset(emlxs_hba_t *hba, 483291a2b48SSukumar Swaminathan uint32_t restart, uint32_t skip_post); 484291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_hba_reset(emlxs_hba_t *hba, 485291a2b48SSukumar Swaminathan uint32_t restart, uint32_t skip_post); 486291a2b48SSukumar Swaminathan 487291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli2_bde_setup(emlxs_port_t *port, 488291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 489291a2b48SSukumar Swaminathan #ifdef SLI3_SUPPORT 490291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_bde_setup(emlxs_port_t *port, 491291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 492291a2b48SSukumar Swaminathan #endif 493291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_bde_setup(emlxs_port_t *port, 494291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 495291a2b48SSukumar Swaminathan 496291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli2_fct_bde_setup(emlxs_port_t *port, 497291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 498291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_fct_bde_setup(emlxs_port_t *port, 499291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 500291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_fct_bde_setup(emlxs_port_t *port, 501291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 502291a2b48SSukumar Swaminathan 503291a2b48SSukumar Swaminathan extern void emlxs_sli3_issue_iocb_cmd(emlxs_hba_t *hba, 504291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocb_cmd); 505291a2b48SSukumar Swaminathan extern void emlxs_sli4_issue_iocb_cmd(emlxs_hba_t *hba, 506291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocb_cmd); 507291a2b48SSukumar Swaminathan 508291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_issue_mbox_cmd(emlxs_hba_t *hba, 509291a2b48SSukumar Swaminathan MAILBOX *mb, int32_t flg, uint32_t tmo); 510291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_issue_mbox_cmd(emlxs_hba_t *hba, 511291a2b48SSukumar Swaminathan MAILBOX *mb, int32_t flg, uint32_t tmo); 512291a2b48SSukumar Swaminathan 513291a2b48SSukumar Swaminathan #ifdef SFCT_SUPPORT 514291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_prep_fct_iocb(emlxs_port_t *port, 515291a2b48SSukumar Swaminathan emlxs_buf_t *cmd_sbp); 516291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_prep_fct_iocb(emlxs_port_t *port, 517291a2b48SSukumar Swaminathan emlxs_buf_t *cmd_sbp); 518291a2b48SSukumar Swaminathan #endif /* SFCT_SUPPORT */ 519291a2b48SSukumar Swaminathan 520291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_prep_fcp_iocb(emlxs_port_t *port, 521291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 522291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_prep_fcp_iocb(emlxs_port_t *port, 523291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 524291a2b48SSukumar Swaminathan 525291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_prep_ip_iocb(emlxs_port_t *port, 526291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 527291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_prep_ip_iocb(emlxs_port_t *port, 528291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 529291a2b48SSukumar Swaminathan 530291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_prep_els_iocb(emlxs_port_t *port, 531291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 532291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_prep_els_iocb(emlxs_port_t *port, 533291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 534291a2b48SSukumar Swaminathan 535291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_prep_ct_iocb(emlxs_port_t *port, 536291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 537291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_prep_ct_iocb(emlxs_port_t *port, 538291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 539291a2b48SSukumar Swaminathan 540291a2b48SSukumar Swaminathan extern void emlxs_sli3_poll_intr(emlxs_hba_t *hba, 541291a2b48SSukumar Swaminathan uint32_t att_bit); 542291a2b48SSukumar Swaminathan extern void emlxs_sli4_poll_intr(emlxs_hba_t *hba, 543291a2b48SSukumar Swaminathan uint32_t att_bit); 544291a2b48SSukumar Swaminathan extern int32_t emlxs_sli3_intx_intr(char *arg); 545291a2b48SSukumar Swaminathan extern int32_t emlxs_sli4_intx_intr(char *arg); 546291a2b48SSukumar Swaminathan #ifdef MSI_SUPPORT 547291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli3_msi_intr(char *arg1, char *arg2); 548291a2b48SSukumar Swaminathan extern uint32_t emlxs_sli4_msi_intr(char *arg1, char *arg2); 549291a2b48SSukumar Swaminathan #endif /* MSI_SUPPORT */ 550291a2b48SSukumar Swaminathan 551291a2b48SSukumar Swaminathan 552291a2b48SSukumar Swaminathan extern uint32_t emlxs_interlock(emlxs_hba_t *hba); 553291a2b48SSukumar Swaminathan extern uint32_t emlxs_reset_ring(emlxs_hba_t *hba, 554291a2b48SSukumar Swaminathan uint32_t ringno); 555291a2b48SSukumar Swaminathan extern void emlxs_handle_ff_error(emlxs_hba_t *hba); 556291a2b48SSukumar Swaminathan extern uint32_t emlxs_handle_mb_event(emlxs_hba_t *hba); 557291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_issue_cmd(emlxs_hba_t *hba, 558291a2b48SSukumar Swaminathan MAILBOX *mb, int32_t flag, 559291a2b48SSukumar Swaminathan uint32_t timeout); 560291a2b48SSukumar Swaminathan extern void emlxs_timer_check_mbox(emlxs_hba_t *hba); 561291a2b48SSukumar Swaminathan extern uint32_t emlxs_mb_config_port(emlxs_hba_t *hba, 562291a2b48SSukumar Swaminathan MAILBOX *mb, uint32_t sli_mode, 563291a2b48SSukumar Swaminathan uint32_t hbainit); 564291a2b48SSukumar Swaminathan extern void emlxs_enable_latt(emlxs_hba_t *hba); 565291a2b48SSukumar Swaminathan extern void emlxs_disable_intr(emlxs_hba_t *hba, 566291a2b48SSukumar Swaminathan uint32_t att); 567291a2b48SSukumar Swaminathan extern uint32_t emlxs_check_attention(emlxs_hba_t *hba); 568291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_attention(emlxs_hba_t *hba, 569291a2b48SSukumar Swaminathan uint32_t msgid); 570291a2b48SSukumar Swaminathan extern void emlxs_proc_attention(emlxs_hba_t *hba, 571291a2b48SSukumar Swaminathan uint32_t ha_copy); 572291a2b48SSukumar Swaminathan extern int emlxs_handle_rcv_seq(emlxs_hba_t *hba, 573291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq); 574291a2b48SSukumar Swaminathan extern void emlxs_intr_initialize(emlxs_hba_t *hba); 575291a2b48SSukumar Swaminathan extern void emlxs_update_HBQ_index(emlxs_hba_t *hba, 576291a2b48SSukumar Swaminathan uint32_t hbq_id); 577291a2b48SSukumar Swaminathan extern void emlxs_hbq_free_all(emlxs_hba_t *hba, 578291a2b48SSukumar Swaminathan uint32_t hbq_id); 579291a2b48SSukumar Swaminathan extern uint32_t emlxs_hbq_setup(emlxs_hba_t *hba, 580291a2b48SSukumar Swaminathan uint32_t hbq_id); 581fcf3ce44SJohn Forte 582fcf3ce44SJohn Forte /* Module emlxs_diag.c External Routine Declarations */ 583291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_post_run(emlxs_hba_t *hba); 584291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_biu_run(emlxs_hba_t *hba, 585291a2b48SSukumar Swaminathan uint32_t pattern); 586291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_pattern[256]; 587291a2b48SSukumar Swaminathan extern uint32_t emlxs_diag_echo_run(emlxs_port_t *port, 588291a2b48SSukumar Swaminathan uint32_t did, uint32_t pattern); 589291a2b48SSukumar Swaminathan extern uint32_t emlxs_core_size(emlxs_hba_t *hba); 590291a2b48SSukumar Swaminathan extern uint32_t emlxs_core_dump(emlxs_hba_t *hba, 591291a2b48SSukumar Swaminathan char *buffer, uint32_t size); 592fcf3ce44SJohn Forte 593fcf3ce44SJohn Forte /* Module emlxs_download.c External Routine Declarations */ 594291a2b48SSukumar Swaminathan extern int32_t emlxs_fw_download(emlxs_hba_t *hba, 595291a2b48SSukumar Swaminathan caddr_t buffer, uint32_t len, 596291a2b48SSukumar Swaminathan uint32_t offline); 597291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_max_sram(emlxs_hba_t *hba, 598291a2b48SSukumar Swaminathan uint32_t *MaxRbusSize, 599291a2b48SSukumar Swaminathan uint32_t *MaxIbusSize); 600291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_load_list(emlxs_hba_t *hba, 601291a2b48SSukumar Swaminathan PROG_ID *load_list); 602291a2b48SSukumar Swaminathan extern uint32_t emlxs_read_wakeup_parms(emlxs_hba_t *hba, 603291a2b48SSukumar Swaminathan PWAKE_UP_PARMS WakeUpParms, 604291a2b48SSukumar Swaminathan uint32_t verbose); 605291a2b48SSukumar Swaminathan extern int32_t emlxs_cfl_download(emlxs_hba_t *hba, 606291a2b48SSukumar Swaminathan uint32_t region, caddr_t buffer, 607291a2b48SSukumar Swaminathan uint32_t len); 608291a2b48SSukumar Swaminathan 609291a2b48SSukumar Swaminathan extern int32_t emlxs_boot_code_disable(emlxs_hba_t *hba); 610291a2b48SSukumar Swaminathan extern int32_t emlxs_boot_code_enable(emlxs_hba_t *hba); 611291a2b48SSukumar Swaminathan extern int32_t emlxs_boot_code_state(emlxs_hba_t *hba); 612fcf3ce44SJohn Forte 613fcf3ce44SJohn Forte /* Module emlxs_fcp.c External Routine Declarations */ 614291a2b48SSukumar Swaminathan extern int emlxs_power_up(emlxs_hba_t *hba); 615291a2b48SSukumar Swaminathan extern int emlxs_power_down(emlxs_hba_t *hba); 616291a2b48SSukumar Swaminathan extern int emlxs_reset_link(emlxs_hba_t *hba, 617291a2b48SSukumar Swaminathan uint32_t linkup); 618291a2b48SSukumar Swaminathan extern emlxs_buf_t *emlxs_unregister_pkt(RING *rp, 619291a2b48SSukumar Swaminathan uint16_t iotag, uint32_t forced); 620291a2b48SSukumar Swaminathan extern uint16_t emlxs_register_pkt(RING *rp, 621291a2b48SSukumar Swaminathan emlxs_buf_t *sbp); 622291a2b48SSukumar Swaminathan 623291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_abort_xri_cn(emlxs_port_t *port, 624291a2b48SSukumar Swaminathan NODELIST *ndlp, uint16_t iotag, 625291a2b48SSukumar Swaminathan RING *rp, uint8_t class, int32_t flag); 626291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_close_xri_cn(emlxs_port_t *port, 627291a2b48SSukumar Swaminathan NODELIST *ndlp, uint16_t iotag, 628291a2b48SSukumar Swaminathan RING *rp); 629291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_abort_xri_cx(emlxs_port_t *port, 630291a2b48SSukumar Swaminathan NODELIST *ndlp, uint16_t xid, RING *rp, 631291a2b48SSukumar Swaminathan uint8_t class, int32_t flag); 632291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_create_close_xri_cx(emlxs_port_t *port, 633291a2b48SSukumar Swaminathan NODELIST *ndlp, uint16_t xid, RING *rp); 634*bb63f56eSSukumar Swaminathan extern void emlxs_abort_ct_exchange(emlxs_hba_t *hba, 635*bb63f56eSSukumar Swaminathan emlxs_port_t *port, uint32_t rxid); 636291a2b48SSukumar Swaminathan 637291a2b48SSukumar Swaminathan extern emlxs_buf_t *emlxs_chipq_get(RING *rp, uint16_t iotag); 638291a2b48SSukumar Swaminathan extern void emlxs_chipq_put(RING *rp, emlxs_buf_t *sbp); 639291a2b48SSukumar Swaminathan extern uint32_t emlxs_chipq_node_flush(emlxs_port_t *port, 640291a2b48SSukumar Swaminathan RING *rp, NODELIST *ndlp, 641291a2b48SSukumar Swaminathan emlxs_buf_t *fpkt); 642291a2b48SSukumar Swaminathan extern uint32_t emlxs_chipq_lun_flush(emlxs_port_t *port, 643291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t lun, 644291a2b48SSukumar Swaminathan emlxs_buf_t *fpkt); 645291a2b48SSukumar Swaminathan extern uint32_t emlxs_chipq_node_check(emlxs_port_t *port, 646291a2b48SSukumar Swaminathan RING *ring, NODELIST *ndlp); 647291a2b48SSukumar Swaminathan 648291a2b48SSukumar Swaminathan extern IOCBQ *emlxs_tx_get(RING *rp, uint32_t lock); 649291a2b48SSukumar Swaminathan extern void emlxs_tx_put(IOCBQ *iocbq, uint32_t lock); 650291a2b48SSukumar Swaminathan extern uint32_t emlxs_tx_node_check(emlxs_port_t *port, 651291a2b48SSukumar Swaminathan NODELIST *ndlp, RING *ring); 652291a2b48SSukumar Swaminathan extern uint32_t emlxs_tx_node_flush(emlxs_port_t *port, 653291a2b48SSukumar Swaminathan NODELIST *ndlp, RING *ring, 654291a2b48SSukumar Swaminathan uint32_t shutdown, emlxs_buf_t *fpkt); 655291a2b48SSukumar Swaminathan extern uint32_t emlxs_tx_lun_flush(emlxs_port_t *port, 656291a2b48SSukumar Swaminathan NODELIST *ndlp, uint32_t lun, 657291a2b48SSukumar Swaminathan emlxs_buf_t *fpkt); 658291a2b48SSukumar Swaminathan extern uint32_t emlxs_tx_ring_flush(emlxs_hba_t *hba, 659291a2b48SSukumar Swaminathan RING *rp, emlxs_buf_t *fpkt); 660291a2b48SSukumar Swaminathan 661291a2b48SSukumar Swaminathan extern void emlxs_linkdown(emlxs_hba_t *hba); 662291a2b48SSukumar Swaminathan extern void emlxs_linkup(emlxs_hba_t *hba); 663291a2b48SSukumar Swaminathan extern void emlxs_port_online(emlxs_port_t *port); 664291a2b48SSukumar Swaminathan extern int32_t emlxs_port_offline(emlxs_port_t *port, 665291a2b48SSukumar Swaminathan uint32_t scope); 666291a2b48SSukumar Swaminathan extern void emlxs_ffcleanup(emlxs_hba_t *hba); 667291a2b48SSukumar Swaminathan extern int32_t emlxs_offline(emlxs_hba_t *hba); 668291a2b48SSukumar Swaminathan extern int32_t emlxs_online(emlxs_hba_t *hba); 669291a2b48SSukumar Swaminathan extern void emlxs_pcimem_bcopy(uint32_t *src, 670291a2b48SSukumar Swaminathan uint32_t *dest, uint32_t cnt); 671291a2b48SSukumar Swaminathan extern int32_t emlxs_post_buffer(emlxs_hba_t *hba, 672291a2b48SSukumar Swaminathan RING *rp, int16_t cnt); 673291a2b48SSukumar Swaminathan extern void emlxs_swap_bcopy(uint32_t *src, 674291a2b48SSukumar Swaminathan uint32_t *dest, uint32_t cnt); 675291a2b48SSukumar Swaminathan extern void emlxs_ff_start(emlxs_hba_t *hba); 676291a2b48SSukumar Swaminathan extern void emlxs_handle_fcp_event(emlxs_hba_t *hba, 677291a2b48SSukumar Swaminathan RING *rp, IOCBQ *temp); 678291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_abort(emlxs_hba_t *hba, 679291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq); 680fcf3ce44SJohn Forte 681fcf3ce44SJohn Forte /* Module emlxs_thread.c External Routine Declarations */ 682291a2b48SSukumar Swaminathan extern void emlxs_taskq_destroy(emlxs_taskq_t *taskq); 683291a2b48SSukumar Swaminathan extern void emlxs_taskq_create(emlxs_hba_t *hba, 684291a2b48SSukumar Swaminathan emlxs_taskq_t *taskq); 685291a2b48SSukumar Swaminathan extern uint32_t emlxs_taskq_dispatch(emlxs_taskq_t *taskq, 686291a2b48SSukumar Swaminathan void (*func) (), void *arg); 687291a2b48SSukumar Swaminathan extern void emlxs_thread_create(emlxs_hba_t *hba, 688291a2b48SSukumar Swaminathan emlxs_thread_t *ethread); 689291a2b48SSukumar Swaminathan extern void emlxs_thread_destroy(emlxs_thread_t *ethread); 690291a2b48SSukumar Swaminathan extern void emlxs_thread_trigger1(emlxs_thread_t *ethread, 691291a2b48SSukumar Swaminathan void (*func) ()); 692291a2b48SSukumar Swaminathan extern void emlxs_thread_trigger2(emlxs_thread_t *ethread, 693291a2b48SSukumar Swaminathan void (*func) (), RING *rp); 694*bb63f56eSSukumar Swaminathan extern void emlxs_thread_spawn(emlxs_hba_t *hba, 695*bb63f56eSSukumar Swaminathan void (*func) (), void *arg1, 696*bb63f56eSSukumar Swaminathan void *arg2); 697*bb63f56eSSukumar Swaminathan extern void emlxs_thread_spawn_create(emlxs_hba_t *hba); 698*bb63f56eSSukumar Swaminathan extern void emlxs_thread_spawn_destroy(emlxs_hba_t *hba); 699fcf3ce44SJohn Forte 700fcf3ce44SJohn Forte /* Module emlxs_dfc.c External Routine Declarations */ 701291a2b48SSukumar Swaminathan extern int32_t emlxs_dfc_manage(emlxs_hba_t *hba, void *dfc, 702291a2b48SSukumar Swaminathan int32_t mode); 703291a2b48SSukumar Swaminathan extern int32_t emlxs_dfc_handle_event(emlxs_hba_t *hba, 704291a2b48SSukumar Swaminathan RING *rp, IOCBQ *temp); 705291a2b48SSukumar Swaminathan extern int emlxs_dfc_handle_unsol_req(emlxs_port_t *port, 706291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq, MATCHMAP *mp, 707291a2b48SSukumar Swaminathan uint32_t size); 708*bb63f56eSSukumar Swaminathan extern void emlxs_fcoe_attention_thread(emlxs_hba_t *hba, 709*bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 710291a2b48SSukumar Swaminathan extern uint32_t emlxs_set_hba_mode(emlxs_hba_t *hba, uint32_t mode); 711291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dump_region(emlxs_hba_t *hba, uint32_t region, 712291a2b48SSukumar Swaminathan uint8_t *buffer, uint32_t *psize); 713291a2b48SSukumar Swaminathan extern int32_t emlxs_send_menlo_cmd(emlxs_hba_t *hba, uint8_t *cmd_buf, 714291a2b48SSukumar Swaminathan uint32_t cmd_size, uint8_t *rsp_buf, 715291a2b48SSukumar Swaminathan uint32_t *rsp_size); 716fcf3ce44SJohn Forte 717fcf3ce44SJohn Forte #ifdef SFCT_SUPPORT 718fcf3ce44SJohn Forte /* Module emlxs_fct.c External Routine Declarations */ 719291a2b48SSukumar Swaminathan extern void emlxs_fct_link_down(emlxs_port_t *port); 720291a2b48SSukumar Swaminathan extern void emlxs_fct_link_up(emlxs_port_t *port); 721291a2b48SSukumar Swaminathan extern void emlxs_fct_init(emlxs_hba_t *hba); 722291a2b48SSukumar Swaminathan extern void emlxs_fct_detach(emlxs_hba_t *hba); 723291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_unsol_els(emlxs_port_t *port, 724291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq, MATCHMAP *mp, 725291a2b48SSukumar Swaminathan uint32_t size); 726291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_unsol_req(emlxs_port_t *port, 727291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq, MATCHMAP *mp, 728291a2b48SSukumar Swaminathan uint32_t size); 729291a2b48SSukumar Swaminathan extern int emlxs_fct_handle_fcp_event(emlxs_hba_t *hba, 730291a2b48SSukumar Swaminathan RING *rp, IOCBQ *iocbq); 731291a2b48SSukumar Swaminathan extern void emlxs_fct_bind_port(emlxs_port_t *port); 732291a2b48SSukumar Swaminathan extern void emlxs_fct_unbind_port(emlxs_port_t *port); 733291a2b48SSukumar Swaminathan extern void emlxs_fct_unsol_callback(emlxs_port_t *port, 734291a2b48SSukumar Swaminathan fct_cmd_t *fct_cmd); 735291a2b48SSukumar Swaminathan extern void emlxs_fct_attach(emlxs_hba_t *hba); 736291a2b48SSukumar Swaminathan extern int emlxs_fct_port_shutdown(emlxs_port_t *port); 737291a2b48SSukumar Swaminathan extern int emlxs_fct_port_initialize(emlxs_port_t *port); 738fcf3ce44SJohn Forte 739fcf3ce44SJohn Forte #ifdef MODSYM_SUPPORT 740291a2b48SSukumar Swaminathan extern void emlxs_fct_modclose(); 741291a2b48SSukumar Swaminathan #endif /* MODSYM_SUPPORT */ 742291a2b48SSukumar Swaminathan 743291a2b48SSukumar Swaminathan #ifdef FCT_IO_TRACE 744291a2b48SSukumar Swaminathan extern void emlxs_fct_io_trace(emlxs_port_t *, 745291a2b48SSukumar Swaminathan fct_cmd_t *, uint32_t); 746291a2b48SSukumar Swaminathan #endif /* FCT_IO_TRACE */ 747291a2b48SSukumar Swaminathan #endif /* SFCT_SUPPORT */ 748291a2b48SSukumar Swaminathan 749291a2b48SSukumar Swaminathan #ifdef SAN_DIAG_SUPPORT 750291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_sd_event(emlxs_port_t *port, 751291a2b48SSukumar Swaminathan emlxs_dfc_event_t *dfc_event, 752291a2b48SSukumar Swaminathan uint32_t sleep); 753291a2b48SSukumar Swaminathan extern void emlxs_log_sd_basic_els_event(emlxs_port_t *port, 754291a2b48SSukumar Swaminathan uint32_t subcat, HBA_WWN *portname, 755291a2b48SSukumar Swaminathan HBA_WWN *nodename); 756291a2b48SSukumar Swaminathan extern void emlxs_log_sd_prlo_event(emlxs_port_t *port, 757291a2b48SSukumar Swaminathan HBA_WWN *portname); 758291a2b48SSukumar Swaminathan extern void emlxs_log_sd_lsrjt_event(emlxs_port_t *port, 759291a2b48SSukumar Swaminathan HBA_WWN *remoteport, uint32_t orig_cmd, 760291a2b48SSukumar Swaminathan uint32_t reason, uint32_t reason_expl); 761291a2b48SSukumar Swaminathan extern void emlxs_log_sd_fc_bsy_event(emlxs_port_t *port, 762291a2b48SSukumar Swaminathan HBA_WWN *remoteport); 763291a2b48SSukumar Swaminathan extern void emlxs_log_sd_fc_rdchk_event(emlxs_port_t *port, 764291a2b48SSukumar Swaminathan HBA_WWN *remoteport, uint32_t lun, 765291a2b48SSukumar Swaminathan uint32_t opcode, uint32_t fcp_param); 766291a2b48SSukumar Swaminathan extern void emlxs_log_sd_scsi_event(emlxs_port_t *port, 767291a2b48SSukumar Swaminathan uint32_t type, HBA_WWN *remoteport, 768291a2b48SSukumar Swaminathan int32_t lun); 769291a2b48SSukumar Swaminathan extern void emlxs_log_sd_scsi_check_event( 770291a2b48SSukumar Swaminathan emlxs_port_t *port, 771291a2b48SSukumar Swaminathan HBA_WWN *remoteport, uint32_t lun, 772291a2b48SSukumar Swaminathan uint32_t cmdcode, uint32_t sensekey, 773291a2b48SSukumar Swaminathan uint32_t asc, uint32_t ascq); 774291a2b48SSukumar Swaminathan #endif /* SAN_DIAG_SUPPORT */ 775291a2b48SSukumar Swaminathan 776291a2b48SSukumar Swaminathan 777291a2b48SSukumar Swaminathan #ifdef DUMP_SUPPORT 778291a2b48SSukumar Swaminathan /* Module emlxs_dump.c External Routine Declarations */ 779291a2b48SSukumar Swaminathan extern uint32_t emlxs_dump_drv_event(emlxs_hba_t *hba); 780291a2b48SSukumar Swaminathan extern uint32_t emlxs_dump_user_event(emlxs_hba_t *hba); 781291a2b48SSukumar Swaminathan extern uint32_t emlxs_dump_temp_event(emlxs_hba_t *hba, 782291a2b48SSukumar Swaminathan uint32_t tempType, uint32_t temp); 783*bb63f56eSSukumar Swaminathan extern void emlxs_dump_drv_thread(emlxs_hba_t *hba, 784*bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 785*bb63f56eSSukumar Swaminathan extern void emlxs_dump_user_thread(emlxs_hba_t *hba, 786*bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 787*bb63f56eSSukumar Swaminathan extern void emlxs_dump_temp_thread(emlxs_hba_t *hba, 788*bb63f56eSSukumar Swaminathan void *arg1, void *arg2); 789291a2b48SSukumar Swaminathan extern uint32_t emlxs_ftell(emlxs_file_t *fp); 790291a2b48SSukumar Swaminathan extern uint32_t emlxs_get_dump(emlxs_hba_t *hba, uint8_t *buffer, 791291a2b48SSukumar Swaminathan uint32_t *buflen); 792291a2b48SSukumar Swaminathan extern void emlxs_dump_wait(emlxs_hba_t *hba); 793291a2b48SSukumar Swaminathan extern void emlxs_dump(emlxs_hba_t *hba, uint32_t type, 794291a2b48SSukumar Swaminathan uint32_t temp_type, uint32_t temp); 795291a2b48SSukumar Swaminathan 796291a2b48SSukumar Swaminathan #endif /* DUMP_SUPPORT */ 797fcf3ce44SJohn Forte 798fcf3ce44SJohn Forte #ifdef __cplusplus 799fcf3ce44SJohn Forte } 800fcf3ce44SJohn Forte #endif 801fcf3ce44SJohn Forte 802fcf3ce44SJohn Forte #endif /* _EMLXS_EXTERN_H */ 803