132 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2005-2009 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.
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 *  bfa_fcs_fcpim.h BFA FCS FCP Initiator Mode interfaces/defines.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __BFA_FCS_FCPIM_H__
 | 
						|
#define __BFA_FCS_FCPIM_H__
 | 
						|
 | 
						|
#include <defs/bfa_defs_status.h>
 | 
						|
#include <defs/bfa_defs_itnim.h>
 | 
						|
#include <fcs/bfa_fcs.h>
 | 
						|
#include <fcs/bfa_fcs_rport.h>
 | 
						|
#include <fcs/bfa_fcs_lport.h>
 | 
						|
#include <bfa_fcpim.h>
 | 
						|
 | 
						|
/*
 | 
						|
 * forward declarations
 | 
						|
 */
 | 
						|
struct bfad_itnim_s;
 | 
						|
 | 
						|
struct bfa_fcs_itnim_s {
 | 
						|
	bfa_sm_t		sm;		/*  state machine */
 | 
						|
	struct bfa_fcs_rport_s 	*rport;		/*  parent remote rport  */
 | 
						|
	struct bfad_itnim_s   	*itnim_drv;	/*  driver peer instance */
 | 
						|
	struct bfa_fcs_s      	*fcs;		/*  fcs instance         */
 | 
						|
	struct bfa_timer_s 	timer;		/*  timer functions      */
 | 
						|
	struct bfa_itnim_s 	*bfa_itnim;	/*  BFA itnim struct     */
 | 
						|
	bfa_boolean_t	 	seq_rec;	/*  seq recovery support */
 | 
						|
	bfa_boolean_t	 	rec_support;	/*  REC supported        */
 | 
						|
	bfa_boolean_t	 	conf_comp;	/*  FCP_CONF     support */
 | 
						|
	bfa_boolean_t	 	task_retry_id;	/*  task retry id supp   */
 | 
						|
	struct bfa_fcxp_wqe_s 	fcxp_wqe;	/*  wait qelem for fcxp  */
 | 
						|
	struct bfa_fcxp_s *fcxp;		/*  FCXP in use          */
 | 
						|
	struct bfa_itnim_stats_s 	stats;	/*  itn statistics       */
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
static inline struct bfad_port_s *
 | 
						|
bfa_fcs_itnim_get_drvport(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->rport->port->bfad_port;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline struct bfa_fcs_port_s *
 | 
						|
bfa_fcs_itnim_get_port(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->rport->port;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline wwn_t
 | 
						|
bfa_fcs_itnim_get_nwwn(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->rport->nwwn;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline wwn_t
 | 
						|
bfa_fcs_itnim_get_pwwn(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->rport->pwwn;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline u32
 | 
						|
bfa_fcs_itnim_get_fcid(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->rport->pid;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline   u32
 | 
						|
bfa_fcs_itnim_get_maxfrsize(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->rport->maxfrsize;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline   enum fc_cos
 | 
						|
bfa_fcs_itnim_get_cos(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->rport->fc_cos;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline struct bfad_itnim_s *
 | 
						|
bfa_fcs_itnim_get_drvitn(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->itnim_drv;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static inline struct bfa_itnim_s *
 | 
						|
bfa_fcs_itnim_get_halitn(struct bfa_fcs_itnim_s *itnim)
 | 
						|
{
 | 
						|
	return itnim->bfa_itnim;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * bfa fcs FCP Initiator mode API functions
 | 
						|
 */
 | 
						|
void bfa_fcs_itnim_get_attr(struct bfa_fcs_itnim_s *itnim,
 | 
						|
			struct bfa_itnim_attr_s *attr);
 | 
						|
void bfa_fcs_itnim_get_stats(struct bfa_fcs_itnim_s *itnim,
 | 
						|
			struct bfa_itnim_stats_s *stats);
 | 
						|
struct bfa_fcs_itnim_s *bfa_fcs_itnim_lookup(struct bfa_fcs_port_s *port,
 | 
						|
			wwn_t rpwwn);
 | 
						|
bfa_status_t bfa_fcs_itnim_attr_get(struct bfa_fcs_port_s *port, wwn_t rpwwn,
 | 
						|
			struct bfa_itnim_attr_s *attr);
 | 
						|
bfa_status_t bfa_fcs_itnim_stats_get(struct bfa_fcs_port_s *port, wwn_t rpwwn,
 | 
						|
			struct bfa_itnim_stats_s *stats);
 | 
						|
bfa_status_t bfa_fcs_itnim_stats_clear(struct bfa_fcs_port_s *port,
 | 
						|
			wwn_t rpwwn);
 | 
						|
#endif /* __BFA_FCS_FCPIM_H__ */
 |