1*afaf5a2dSDavid Somayajulu /* 2*afaf5a2dSDavid Somayajulu * QLogic iSCSI HBA Driver 3*afaf5a2dSDavid Somayajulu * Copyright (c) 2003-2006 QLogic Corporation 4*afaf5a2dSDavid Somayajulu * 5*afaf5a2dSDavid Somayajulu * See LICENSE.qla4xxx for copyright and licensing details. 6*afaf5a2dSDavid Somayajulu */ 7*afaf5a2dSDavid Somayajulu 8*afaf5a2dSDavid Somayajulu #ifndef __QLA4x_GBL_H 9*afaf5a2dSDavid Somayajulu #define __QLA4x_GBL_H 10*afaf5a2dSDavid Somayajulu 11*afaf5a2dSDavid Somayajulu int qla4xxx_send_tgts(struct scsi_qla_host *ha, char *ip, uint16_t port); 12*afaf5a2dSDavid Somayajulu int qla4xxx_send_command_to_isp(struct scsi_qla_host *ha, struct srb * srb); 13*afaf5a2dSDavid Somayajulu int qla4xxx_initialize_adapter(struct scsi_qla_host * ha, 14*afaf5a2dSDavid Somayajulu uint8_t renew_ddb_list); 15*afaf5a2dSDavid Somayajulu int qla4xxx_soft_reset(struct scsi_qla_host *ha); 16*afaf5a2dSDavid Somayajulu irqreturn_t qla4xxx_intr_handler(int irq, void *dev_id, struct pt_regs *regs); 17*afaf5a2dSDavid Somayajulu 18*afaf5a2dSDavid Somayajulu void qla4xxx_free_ddb_list(struct scsi_qla_host * ha); 19*afaf5a2dSDavid Somayajulu void qla4xxx_process_aen(struct scsi_qla_host * ha, uint8_t process_aen); 20*afaf5a2dSDavid Somayajulu 21*afaf5a2dSDavid Somayajulu int qla4xxx_get_dhcp_ip_address(struct scsi_qla_host * ha); 22*afaf5a2dSDavid Somayajulu int qla4xxx_relogin_device(struct scsi_qla_host * ha, 23*afaf5a2dSDavid Somayajulu struct ddb_entry * ddb_entry); 24*afaf5a2dSDavid Somayajulu int qla4xxx_reset_lun(struct scsi_qla_host * ha, struct ddb_entry * ddb_entry, 25*afaf5a2dSDavid Somayajulu int lun); 26*afaf5a2dSDavid Somayajulu int qla4xxx_get_flash(struct scsi_qla_host * ha, dma_addr_t dma_addr, 27*afaf5a2dSDavid Somayajulu uint32_t offset, uint32_t len); 28*afaf5a2dSDavid Somayajulu int qla4xxx_get_firmware_status(struct scsi_qla_host * ha); 29*afaf5a2dSDavid Somayajulu int qla4xxx_get_firmware_state(struct scsi_qla_host * ha); 30*afaf5a2dSDavid Somayajulu int qla4xxx_initialize_fw_cb(struct scsi_qla_host * ha); 31*afaf5a2dSDavid Somayajulu 32*afaf5a2dSDavid Somayajulu /* FIXME: Goodness! this really wants a small struct to hold the 33*afaf5a2dSDavid Somayajulu * parameters. On x86 the args will get passed on the stack! */ 34*afaf5a2dSDavid Somayajulu int qla4xxx_get_fwddb_entry(struct scsi_qla_host *ha, 35*afaf5a2dSDavid Somayajulu uint16_t fw_ddb_index, 36*afaf5a2dSDavid Somayajulu struct dev_db_entry *fw_ddb_entry, 37*afaf5a2dSDavid Somayajulu dma_addr_t fw_ddb_entry_dma, 38*afaf5a2dSDavid Somayajulu uint32_t *num_valid_ddb_entries, 39*afaf5a2dSDavid Somayajulu uint32_t *next_ddb_index, 40*afaf5a2dSDavid Somayajulu uint32_t *fw_ddb_device_state, 41*afaf5a2dSDavid Somayajulu uint32_t *conn_err_detail, 42*afaf5a2dSDavid Somayajulu uint16_t *tcp_source_port_num, 43*afaf5a2dSDavid Somayajulu uint16_t *connection_id); 44*afaf5a2dSDavid Somayajulu 45*afaf5a2dSDavid Somayajulu struct ddb_entry * qla4xxx_alloc_ddb(struct scsi_qla_host * ha, 46*afaf5a2dSDavid Somayajulu uint32_t fw_ddb_index); 47*afaf5a2dSDavid Somayajulu int qla4xxx_set_ddb_entry(struct scsi_qla_host * ha, uint16_t fw_ddb_index, 48*afaf5a2dSDavid Somayajulu dma_addr_t fw_ddb_entry_dma); 49*afaf5a2dSDavid Somayajulu 50*afaf5a2dSDavid Somayajulu void qla4xxx_mark_device_missing(struct scsi_qla_host *ha, 51*afaf5a2dSDavid Somayajulu struct ddb_entry *ddb_entry); 52*afaf5a2dSDavid Somayajulu u16 rd_nvram_word(struct scsi_qla_host * ha, int offset); 53*afaf5a2dSDavid Somayajulu void qla4xxx_get_crash_record(struct scsi_qla_host * ha); 54*afaf5a2dSDavid Somayajulu struct ddb_entry *qla4xxx_alloc_sess(struct scsi_qla_host *ha); 55*afaf5a2dSDavid Somayajulu int qla4xxx_add_sess(struct ddb_entry *); 56*afaf5a2dSDavid Somayajulu void qla4xxx_destroy_sess(struct ddb_entry *ddb_entry); 57*afaf5a2dSDavid Somayajulu int qla4xxx_conn_close_sess_logout(struct scsi_qla_host * ha, 58*afaf5a2dSDavid Somayajulu uint16_t fw_ddb_index, 59*afaf5a2dSDavid Somayajulu uint16_t connection_id, 60*afaf5a2dSDavid Somayajulu uint16_t option); 61*afaf5a2dSDavid Somayajulu int qla4xxx_clear_database_entry(struct scsi_qla_host * ha, 62*afaf5a2dSDavid Somayajulu uint16_t fw_ddb_index); 63*afaf5a2dSDavid Somayajulu int qla4xxx_is_nvram_configuration_valid(struct scsi_qla_host * ha); 64*afaf5a2dSDavid Somayajulu int qla4xxx_get_fw_version(struct scsi_qla_host * ha); 65*afaf5a2dSDavid Somayajulu void qla4xxx_interrupt_service_routine(struct scsi_qla_host * ha, 66*afaf5a2dSDavid Somayajulu uint32_t intr_status); 67*afaf5a2dSDavid Somayajulu int qla4xxx_init_rings(struct scsi_qla_host * ha); 68*afaf5a2dSDavid Somayajulu void qla4xxx_dump_buffer(void *b, uint32_t size); 69*afaf5a2dSDavid Somayajulu struct srb * qla4xxx_del_from_active_array(struct scsi_qla_host *ha, uint32_t index); 70*afaf5a2dSDavid Somayajulu void qla4xxx_srb_compl(struct scsi_qla_host *ha, struct srb *srb); 71*afaf5a2dSDavid Somayajulu int qla4xxx_reinitialize_ddb_list(struct scsi_qla_host * ha); 72*afaf5a2dSDavid Somayajulu int qla4xxx_process_ddb_changed(struct scsi_qla_host * ha, 73*afaf5a2dSDavid Somayajulu uint32_t fw_ddb_index, uint32_t state); 74*afaf5a2dSDavid Somayajulu 75*afaf5a2dSDavid Somayajulu extern int extended_error_logging; 76*afaf5a2dSDavid Somayajulu extern int ql4xdiscoverywait; 77*afaf5a2dSDavid Somayajulu extern int ql4xdontresethba; 78*afaf5a2dSDavid Somayajulu #endif /* _QLA4x_GBL_H */ 79