#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/utsname.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/kthread.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/configfs.h>
#include <linux/ctype.h>
#include <linux/hash.h>
#include <asm/unaligned.h>
#include <scsi/scsi_tcq.h>
#include <scsi/libfc.h>
#include <target/target_core_base.h>
#include <target/target_core_fabric.h>
#include "tcm_fc.h"
static void _ft_dump_cmd(struct ft_cmd *cmd, const char *caller)
{ … }
void ft_dump_cmd(struct ft_cmd *cmd, const char *caller)
{ … }
static void ft_free_cmd(struct ft_cmd *cmd)
{ … }
void ft_release_cmd(struct se_cmd *se_cmd)
{ … }
int ft_check_stop_free(struct se_cmd *se_cmd)
{ … }
int ft_queue_status(struct se_cmd *se_cmd)
{ … }
int ft_write_pending(struct se_cmd *se_cmd)
{ … }
static void ft_recv_seq(struct fc_seq *sp, struct fc_frame *fp, void *arg)
{ … }
static void ft_send_resp_status(struct fc_lport *lport,
const struct fc_frame *rx_fp,
u32 status, enum fcp_resp_rsp_codes code)
{ … }
static void ft_send_resp_code(struct ft_cmd *cmd,
enum fcp_resp_rsp_codes code)
{ … }
static void ft_send_resp_code_and_free(struct ft_cmd *cmd,
enum fcp_resp_rsp_codes code)
{ … }
static void ft_send_tm(struct ft_cmd *cmd)
{ … }
void ft_queue_tm_resp(struct se_cmd *se_cmd)
{ … }
void ft_aborted_task(struct se_cmd *se_cmd)
{ … }
static void ft_send_work(struct work_struct *work);
static void ft_recv_cmd(struct ft_sess *sess, struct fc_frame *fp)
{ … }
void ft_recv_req(struct ft_sess *sess, struct fc_frame *fp)
{ … }
static void ft_send_work(struct work_struct *work)
{ … }