/* * Copyright (c) 2005-2010 Brocade Communications Systems, Inc. * All rights reserved * www.brocade.com * * Linux driver for Brocade Fibre Channel Host Bus Adapter. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License (GPL) Version 2 as * published by the Free Software Foundation * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. */#ifndef __BFA_DEFS_SVC_H__#define __BFA_DEFS_SVC_H__#include"bfa_defs.h"#include"bfa_fc.h"#include"bfi.h"#define BFA_IOCFC_INTR_DELAY 1125#define BFA_IOCFC_INTR_LATENCY 225#define BFA_IOCFCOE_INTR_DELAY 25#define BFA_IOCFCOE_INTR_LATENCY 5/* * Interrupt coalescing configuration. */#pragma pack(1)structbfa_iocfc_intr_attr_s{u8coalesce;/* enable/disable coalescing */u8rsvd[3];__be16latency;/* latency in microseconds */__be16delay;/* delay in microseconds */};/* * IOC firmware configuraton */structbfa_iocfc_fwcfg_s{u16num_fabrics;/* number of fabrics */u16num_lports;/* number of local lports */u16num_rports;/* number of remote ports */u16num_ioim_reqs;/* number of IO reqs */u16num_tskim_reqs;/* task management requests */u16num_fwtio_reqs;/* number of TM IO reqs in FW */u16num_fcxp_reqs;/* unassisted FC exchanges */u16num_uf_bufs;/* unsolicited recv buffers */u8num_cqs;u8fw_tick_res;/* FW clock resolution in ms */u8rsvd[2];};#pragma pack()structbfa_iocfc_drvcfg_s{u16num_reqq_elems;/* number of req queue elements */u16num_rspq_elems;/* number of rsp queue elements */u16num_sgpgs;/* number of total SG pages */u16num_sboot_tgts;/* number of SAN boot targets */u16num_sboot_luns;/* number of SAN boot luns */u16ioc_recover;/* IOC recovery mode */u16min_cfg;/* minimum configuration */u16path_tov;/* device path timeout */u16num_tio_reqs;/* number of TM IO reqs */u8port_mode;u8rsvd_a;bfa_boolean_tdelay_comp;/* delay completion of failed * inflight IOs */u16num_ttsk_reqs;/* TM task management requests */u32rsvd;};/* * IOC configuration */structbfa_iocfc_cfg_s{structbfa_iocfc_fwcfg_sfwcfg;/* firmware side config */structbfa_iocfc_drvcfg_sdrvcfg;/* driver side config */};/* * IOC firmware IO stats */structbfa_fw_ioim_stats_s{u32host_abort;/* IO aborted by host driver*/u32host_cleanup;/* IO clean up by host driver */u32fw_io_timeout;/* IOs timedout */u32fw_frm_parse;/* frame parsed by f/w */u32fw_frm_data;/* fcp_data frame parsed by f/w */u32fw_frm_rsp;/* fcp_rsp frame parsed by f/w */u32