drivers/scsi/bfa/bfa_defs_svc.h

Source file repositories/reference/linux-study-clean/drivers/scsi/bfa/bfa_defs_svc.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/bfa/bfa_defs_svc.h
Extension
.h
Size
48473 bytes
Lines
1457
Domain
Driver Families
Bucket
drivers/scsi
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct bfa_iocfc_intr_attr_s {
	u8		coalesce;	/*  enable/disable coalescing */
	u8		rsvd[3];
	__be16		latency;	/*  latency in microseconds   */
	__be16		delay;		/*  delay in microseconds     */
};

/*
 * IOC firmware configuraton
 */
struct bfa_iocfc_fwcfg_s {
	u16		num_fabrics;	/*  number of fabrics		*/
	u16		num_lports;	/*  number of local lports	*/
	u16		num_rports;	/*  number of remote ports	*/
	u16		num_ioim_reqs;	/*  number of IO reqs		*/
	u16		num_tskim_reqs;	/*  task management requests	*/
	u16		num_fwtio_reqs;	/* number of TM IO reqs in FW   */
	u16		num_fcxp_reqs;	/*  unassisted FC exchanges	*/
	u16		num_uf_bufs;	/*  unsolicited recv buffers	*/
	u8		num_cqs;
	u8		fw_tick_res;	/*  FW clock resolution in ms */
	u8		rsvd[6];
};
#pragma pack()

struct bfa_iocfc_drvcfg_s {
	u16		num_reqq_elems;	/*  number of req queue elements */
	u16		num_rspq_elems;	/*  number of rsp queue elements */
	u16		num_sgpgs;	/*  number of total SG pages	 */
	u16		num_sboot_tgts;	/*  number of SAN boot targets	 */
	u16		num_sboot_luns;	/*  number of SAN boot luns	 */
	u16		ioc_recover;	/*  IOC recovery mode		 */
	u16		min_cfg;	/*  minimum configuration	 */
	u16		path_tov;	/*  device path timeout		*/
	u16		num_tio_reqs;	/* number of TM IO reqs	*/
	u8		port_mode;
	u8		rsvd_a;
	bfa_boolean_t	delay_comp;	/* delay completion of failed
					 * inflight IOs */
	u16		num_ttsk_reqs;	 /* TM task management requests */
	u32		rsvd;
};

/*
 * IOC configuration
 */
struct bfa_iocfc_cfg_s {
	struct bfa_iocfc_fwcfg_s	fwcfg;	/*  firmware side config */
	struct bfa_iocfc_drvcfg_s	drvcfg;	/*  driver side config	  */
};

/*
 * IOC firmware IO stats
 */
struct bfa_fw_ioim_stats_s {
	u32	host_abort;		/*  IO aborted by host driver*/
	u32	host_cleanup;		/*  IO clean up by host driver */

	u32	fw_io_timeout;		/*  IOs timedout */
	u32	fw_frm_parse;		/*  frame parsed by f/w */
	u32	fw_frm_data;		/*  fcp_data frame parsed by f/w */
	u32	fw_frm_rsp;		/*  fcp_rsp frame parsed by f/w */
	u32	fw_frm_xfer_rdy;	/*  xfer_rdy frame parsed by f/w */
	u32	fw_frm_bls_acc;		/*  BLS ACC  frame parsed by f/w */
	u32	fw_frm_tgt_abort;	/*  target ABTS parsed by f/w */
	u32	fw_frm_unknown;		/*  unknown parsed by f/w */
	u32	fw_data_dma;		/*  f/w DMA'ed the data frame */
	u32	fw_frm_drop;		/*  f/w drop the frame */

	u32	rec_timeout;		/*  FW rec timed out */
	u32	error_rec;		/*  FW sending rec on
					 *  an error condition*/
	u32	wait_for_si;		/*  FW wait for SI */
	u32	rec_rsp_inval;		/*  REC rsp invalid */
	u32     rec_rsp_xchg_comp;	/*  REC rsp xchg complete */
	u32     rec_rsp_rd_si_ownd;	/*  REC rsp read si owned */

	u32	seqr_io_abort;		/*  target does not know cmd so abort */
	u32	seqr_io_retry;		/*  SEQR failed so retry IO */

	u32	itn_cisc_upd_rsp;	/*  ITN cisc updated on fcp_rsp */
	u32	itn_cisc_upd_data;	/*  ITN cisc updated on fcp_data */
	u32	itn_cisc_upd_xfer_rdy;	/*  ITN cisc updated on fcp_data */

	u32	fcp_data_lost;		/*  fcp data lost */

	u32	ro_set_in_xfer_rdy;	/*  Target set RO in Xfer_rdy frame */
	u32	xfer_rdy_ooo_err;	/*  Out of order Xfer_rdy received */
	u32	xfer_rdy_unknown_err;	/*  unknown error in xfer_rdy frame */

Annotation

Implementation Notes