#include "efct_driver.h"
#include "efct_unsol.h"
#define frame_printf(efct, hdr, fmt, ...) …
static struct efct_node *
efct_node_find(struct efct *efct, u32 port_id, u32 node_id)
{ … }
static int
efct_dispatch_frame(struct efct *efct, struct efc_hw_sequence *seq)
{ … }
int
efct_unsolicited_cb(void *arg, struct efc_hw_sequence *seq)
{ … }
static int
efct_fc_tmf_rejected_cb(struct efct_io *io,
enum efct_scsi_io_status scsi_status,
u32 flags, void *arg)
{ … }
static void
efct_dispatch_unsol_tmf(struct efct_io *io, u8 tm_flags, u32 lun)
{ … }
static int
efct_validate_fcp_cmd(struct efct *efct, struct efc_hw_sequence *seq)
{ … }
static void
efct_populate_io_fcp_cmd(struct efct_io *io, struct fcp_cmnd *cmnd,
struct fc_frame_header *fchdr, bool sit)
{ … }
static u32
efct_get_flags_fcp_cmd(struct fcp_cmnd *cmnd)
{ … }
static void
efct_sframe_common_send_cb(void *arg, u8 *cqe, int status)
{ … }
static int
efct_sframe_common_send(struct efct_node *node,
struct efc_hw_sequence *seq,
enum fc_rctl r_ctl, u32 f_ctl,
u8 type, void *payload, u32 payload_len)
{ … }
static int
efct_sframe_send_fcp_rsp(struct efct_node *node, struct efc_hw_sequence *seq,
void *rsp, u32 rsp_len)
{ … }
static int
efct_sframe_send_task_set_full_or_busy(struct efct_node *node,
struct efc_hw_sequence *seq)
{ … }
int
efct_dispatch_fcp_cmd(struct efct_node *node, struct efc_hw_sequence *seq)
{ … }
static int
efct_process_abts(struct efct_io *io, struct fc_frame_header *hdr)
{ … }
int
efct_node_recv_abts_frame(struct efct_node *node, struct efc_hw_sequence *seq)
{ … }