lpfc.h

来自「linux 内核源代码」· C头文件 代码 · 共 603 行 · 第 1/2 页

H
603
字号
	struct lpfc_name fc_nodename;	/* fc nodename */	struct lpfc_name fc_portname;	/* fc portname */	struct lpfc_work_evt disc_timeout_evt;	struct timer_list fc_disctmo;	/* Discovery rescue timer */	uint8_t fc_ns_retry;	/* retries for fabric nameserver */	uint32_t fc_prli_sent;	/* cntr for outstanding PRLIs */	spinlock_t work_port_lock;	uint32_t work_port_events; /* Timeout to be handled  */#define WORKER_DISC_TMO                0x1	/* vport: Discovery timeout */#define WORKER_ELS_TMO                 0x2	/* vport: ELS timeout */#define WORKER_FDMI_TMO                0x4	/* vport: FDMI timeout */#define WORKER_MBOX_TMO                0x100	/* hba: MBOX timeout */#define WORKER_HB_TMO                  0x200	/* hba: Heart beat timeout */#define WORKER_FABRIC_BLOCK_TMO        0x400	/* hba: fabric block timout */#define WORKER_RAMP_DOWN_QUEUE         0x800	/* hba: Decrease Q depth */#define WORKER_RAMP_UP_QUEUE           0x1000	/* hba: Increase Q depth */	struct timer_list fc_fdmitmo;	struct timer_list els_tmofunc;	int unreg_vpi_cmpl;	uint8_t load_flag;#define FC_LOADING		0x1	/* HBA in process of loading drvr */#define FC_UNLOADING		0x2	/* HBA in process of unloading drvr */	char  *vname;		        /* Application assigned name */	/* Vport Config Parameters */	uint32_t cfg_scan_down;	uint32_t cfg_lun_queue_depth;	uint32_t cfg_nodev_tmo;	uint32_t cfg_devloss_tmo;	uint32_t cfg_restrict_login;	uint32_t cfg_peer_port_login;	uint32_t cfg_fcp_class;	uint32_t cfg_use_adisc;	uint32_t cfg_fdmi_on;	uint32_t cfg_discovery_threads;	uint32_t cfg_log_verbose;	uint32_t cfg_max_luns;	uint32_t dev_loss_tmo_changed;	struct fc_vport *fc_vport;#ifdef CONFIG_LPFC_DEBUG_FS	struct dentry *debug_disc_trc;	struct dentry *debug_nodelist;	struct dentry *vport_debugfs_root;	struct lpfc_debugfs_trc *disc_trc;	atomic_t disc_trc_cnt;#endif};struct hbq_s {	uint16_t entry_count;	  /* Current number of HBQ slots */	uint32_t next_hbqPutIdx;  /* Index to next HBQ slot to use */	uint32_t hbqPutIdx;	  /* HBQ slot to use */	uint32_t local_hbqGetIdx; /* Local copy of Get index from Port */	void    *hbq_virt;	  /* Virtual ptr to this hbq */	struct list_head hbq_buffer_list;  /* buffers assigned to this HBQ */				  /* Callback for HBQ buffer allocation */	struct hbq_dmabuf *(*hbq_alloc_buffer) (struct lpfc_hba *);				  /* Callback for HBQ buffer free */	void               (*hbq_free_buffer) (struct lpfc_hba *,					       struct hbq_dmabuf *);};#define LPFC_MAX_HBQS  4/* this matches the position in the lpfc_hbq_defs array */#define LPFC_ELS_HBQ	0#define LPFC_EXTRA_HBQ	1struct lpfc_hba {	struct lpfc_sli sli;	uint32_t sli_rev;		/* SLI2 or SLI3 */	uint32_t sli3_options;		/* Mask of enabled SLI3 options */#define LPFC_SLI3_ENABLED	 0x01#define LPFC_SLI3_HBQ_ENABLED	 0x02#define LPFC_SLI3_NPIV_ENABLED	 0x04#define LPFC_SLI3_VPORT_TEARDOWN 0x08	uint32_t iocb_cmd_size;	uint32_t iocb_rsp_size;	enum hba_state link_state;	uint32_t link_flag;	/* link state flags */#define LS_LOOPBACK_MODE      0x1	/* NPort is in Loopback mode */					/* This flag is set while issuing */					/* INIT_LINK mailbox command */#define LS_NPIV_FAB_SUPPORTED 0x2	/* Fabric supports NPIV */#define LS_IGNORE_ERATT       0x3	/* intr handler should ignore ERATT */	struct lpfc_sli2_slim *slim2p;	struct lpfc_dmabuf hbqslimp;	dma_addr_t slim2p_mapping;	uint16_t pci_cfg_value;	uint8_t work_found;#define LPFC_MAX_WORKER_ITERATION  4	uint8_t fc_linkspeed;	/* Link speed after last READ_LA */	uint32_t fc_eventTag;	/* event tag for link attention */	struct timer_list fc_estabtmo;	/* link establishment timer */	/* These fields used to be binfo */	uint32_t fc_pref_DID;	/* preferred D_ID */	uint8_t  fc_pref_ALPA;	/* preferred AL_PA */	uint32_t fc_edtov;	/* E_D_TOV timer value */	uint32_t fc_arbtov;	/* ARB_TOV timer value */	uint32_t fc_ratov;	/* R_A_TOV timer value */	uint32_t fc_rttov;	/* R_T_TOV timer value */	uint32_t fc_altov;	/* AL_TOV timer value */	uint32_t fc_crtov;	/* C_R_TOV timer value */	uint32_t fc_citov;	/* C_I_TOV timer value */	struct serv_parm fc_fabparam;	/* fabric service parameters buffer */	uint8_t alpa_map[128];	/* AL_PA map from READ_LA */	uint32_t lmt;	uint32_t fc_topology;	/* link topology, from LINK INIT */	struct lpfc_stats fc_stat;	struct lpfc_nodelist fc_fcpnodev; /* nodelist entry for no device */	uint32_t nport_event_cnt;	/* timestamp for nlplist entry */	uint8_t  wwnn[8];	uint8_t  wwpn[8];	uint32_t RandomData[7];	/* HBA Config Parameters */	uint32_t cfg_ack0;	uint32_t cfg_enable_npiv;	uint32_t cfg_topology;	uint32_t cfg_link_speed;	uint32_t cfg_cr_delay;	uint32_t cfg_cr_count;	uint32_t cfg_multi_ring_support;	uint32_t cfg_multi_ring_rctl;	uint32_t cfg_multi_ring_type;	uint32_t cfg_poll;	uint32_t cfg_poll_tmo;	uint32_t cfg_use_msi;	uint32_t cfg_sg_seg_cnt;	uint32_t cfg_sg_dma_buf_size;	uint64_t cfg_soft_wwnn;	uint64_t cfg_soft_wwpn;	uint32_t cfg_hba_queue_depth;	lpfc_vpd_t vpd;		/* vital product data */	struct pci_dev *pcidev;	struct list_head      work_list;	uint32_t              work_ha;      /* Host Attention Bits for WT */	uint32_t              work_ha_mask; /* HA Bits owned by WT        */	uint32_t              work_hs;      /* HS stored in case of ERRAT */	uint32_t              work_status[2]; /* Extra status from SLIM */	wait_queue_head_t    *work_wait;	struct task_struct   *worker_thread;	uint32_t hbq_count;	        /* Count of configured HBQs */	struct hbq_s hbqs[LPFC_MAX_HBQS]; /* local copy of hbq indicies  */	unsigned long pci_bar0_map;     /* Physical address for PCI BAR0 */	unsigned long pci_bar2_map;     /* Physical address for PCI BAR2 */	void __iomem *slim_memmap_p;	/* Kernel memory mapped address for					   PCI BAR0 */	void __iomem *ctrl_regs_memmap_p;/* Kernel memory mapped address for					    PCI BAR2 */	void __iomem *MBslimaddr;	/* virtual address for mbox cmds */	void __iomem *HAregaddr;	/* virtual address for host attn reg */	void __iomem *CAregaddr;	/* virtual address for chip attn reg */	void __iomem *HSregaddr;	/* virtual address for host status					   reg */	void __iomem *HCregaddr;	/* virtual address for host ctl reg */	struct lpfc_hgp __iomem *host_gp; /* Host side get/put pointers */	uint32_t __iomem  *hbq_put;     /* Address in SLIM to HBQ put ptrs */	uint32_t          *hbq_get;     /* Host mem address of HBQ get ptrs */	int brd_no;			/* FC board number */	char SerialNumber[32];		/* adapter Serial Number */	char OptionROMVersion[32];	/* adapter BIOS / Fcode version */	char ModelDesc[256];		/* Model Description */	char ModelName[80];		/* Model Name */	char ProgramType[256];		/* Program Type */	char Port[20];			/* Port No */	uint8_t vpd_flag;               /* VPD data flag */#define VPD_MODEL_DESC      0x1         /* valid vpd model description */#define VPD_MODEL_NAME      0x2         /* valid vpd model name */#define VPD_PROGRAM_TYPE    0x4         /* valid vpd program type */#define VPD_PORT            0x8         /* valid vpd port data */#define VPD_MASK            0xf         /* mask for any vpd data */	uint8_t soft_wwn_enable;	struct timer_list fcp_poll_timer;	/*	 * stat  counters	 */	uint64_t fc4InputRequests;	uint64_t fc4OutputRequests;	uint64_t fc4ControlRequests;	struct lpfc_sysfs_mbox sysfs_mbox;	/* fastpath list. */	spinlock_t scsi_buf_list_lock;	struct list_head lpfc_scsi_buf_list;	uint32_t total_scsi_bufs;	struct list_head lpfc_iocb_list;	uint32_t total_iocbq_bufs;	spinlock_t hbalock;	/* pci_mem_pools */	struct pci_pool *lpfc_scsi_dma_buf_pool;	struct pci_pool *lpfc_mbuf_pool;	struct pci_pool *lpfc_hbq_pool;	struct lpfc_dma_pool lpfc_mbuf_safety_pool;	mempool_t *mbox_mem_pool;	mempool_t *nlp_mem_pool;	struct fc_host_statistics link_stats;	uint8_t using_msi;	struct list_head port_list;	struct lpfc_vport *pport;	/* physical lpfc_vport pointer */	uint16_t max_vpi;		/* Maximum virtual nports */#define LPFC_MAX_VPI 100		/* Max number of VPI supported */#define LPFC_MAX_VPORTS (LPFC_MAX_VPI+1)/* Max number of VPorts supported */	unsigned long *vpi_bmask;	/* vpi allocation table */	/* Data structure used by fabric iocb scheduler */	struct list_head fabric_iocb_list;	atomic_t fabric_iocb_count;	struct timer_list fabric_block_timer;	unsigned long bit_flags;#define	FABRIC_COMANDS_BLOCKED	0	atomic_t num_rsrc_err;	atomic_t num_cmd_success;	unsigned long last_rsrc_error_time;	unsigned long last_ramp_down_time;	unsigned long last_ramp_up_time;#ifdef CONFIG_LPFC_DEBUG_FS	struct dentry *hba_debugfs_root;	atomic_t debugfs_vport_count;	struct dentry *debug_hbqinfo;	struct dentry *debug_dumpslim;	struct dentry *debug_slow_ring_trc;	struct lpfc_debugfs_trc *slow_ring_trc;	atomic_t slow_ring_trc_cnt;#endif	/* Fields used for heart beat. */	unsigned long last_completion_time;	struct timer_list hb_tmofunc;	uint8_t hb_outstanding;};static inline struct Scsi_Host *lpfc_shost_from_vport(struct lpfc_vport *vport){	return container_of((void *) vport, struct Scsi_Host, hostdata[0]);}static inline voidlpfc_set_loopback_flag(struct lpfc_hba *phba){	if (phba->cfg_topology == FLAGS_LOCAL_LB)		phba->link_flag |= LS_LOOPBACK_MODE;	else		phba->link_flag &= ~LS_LOOPBACK_MODE;}static inline intlpfc_is_link_up(struct lpfc_hba *phba){	return  phba->link_state == LPFC_LINK_UP ||		phba->link_state == LPFC_CLEAR_LA ||		phba->link_state == LPFC_HBA_READY;}#define FC_REG_DUMP_EVENT	0x10	/* Register for Dump events */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?