#include "efct_driver.h"
#include "efct_unsol.h"
static struct dentry *efct_debugfs_root;
static atomic_t efct_debugfs_count;
static const struct scsi_host_template efct_template = …;
static struct fc_function_template efct_xport_functions;
static struct fc_function_template efct_vport_functions;
static struct scsi_transport_template *efct_xport_fc_tt;
static struct scsi_transport_template *efct_vport_fc_tt;
struct efct_xport *
efct_xport_alloc(struct efct *efct)
{ … }
static int
efct_xport_init_debugfs(struct efct *efct)
{ … }
static void efct_xport_delete_debugfs(struct efct *efct)
{ … }
int
efct_xport_attach(struct efct_xport *xport)
{ … }
static void
efct_xport_link_stats_cb(int status, u32 num_counters,
struct efct_hw_link_stat_counts *counters, void *arg)
{ … }
static void
efct_xport_host_stats_cb(int status, u32 num_counters,
struct efct_hw_host_stat_counts *counters, void *arg)
{ … }
static void
efct_xport_async_link_stats_cb(int status, u32 num_counters,
struct efct_hw_link_stat_counts *counters,
void *arg)
{ … }
static void
efct_xport_async_host_stats_cb(int status, u32 num_counters,
struct efct_hw_host_stat_counts *counters,
void *arg)
{ … }
static void
efct_xport_config_stats_timer(struct efct *efct);
static void
efct_xport_stats_timer_cb(struct timer_list *t)
{ … }
static void
efct_xport_config_stats_timer(struct efct *efct)
{ … }
int
efct_xport_initialize(struct efct_xport *xport)
{ … }
int
efct_xport_status(struct efct_xport *xport, enum efct_xport_status cmd,
union efct_xport_stats_u *result)
{ … }
static int
efct_get_link_supported_speeds(struct efct *efct)
{ … }
int
efct_scsi_new_device(struct efct *efct)
{ … }
struct scsi_transport_template *
efct_attach_fc_transport(void)
{ … }
struct scsi_transport_template *
efct_attach_vport_fc_transport(void)
{ … }
int
efct_scsi_reg_fc_transport(void)
{ … }
void
efct_scsi_release_fc_transport(void)
{ … }
void
efct_xport_detach(struct efct_xport *xport)
{ … }
static void
efct_xport_domain_free_cb(struct efc *efc, void *arg)
{ … }
int
efct_xport_control(struct efct_xport *xport, enum efct_xport_ctrl cmd, ...)
{ … }
void
efct_xport_free(struct efct_xport *xport)
{ … }
void
efct_release_fc_transport(struct scsi_transport_template *transport_template)
{ … }
static void
efct_xport_remove_host(struct Scsi_Host *shost)
{ … }
void
efct_scsi_del_device(struct efct *efct)
{ … }
static void
efct_get_host_port_id(struct Scsi_Host *shost)
{ … }
static void
efct_get_host_port_type(struct Scsi_Host *shost)
{ … }
static void
efct_get_host_vport_type(struct Scsi_Host *shost)
{ … }
static void
efct_get_host_port_state(struct Scsi_Host *shost)
{ … }
static void
efct_get_host_speed(struct Scsi_Host *shost)
{ … }
static void
efct_get_host_fabric_name(struct Scsi_Host *shost)
{ … }
static struct fc_host_statistics *
efct_get_stats(struct Scsi_Host *shost)
{ … }
static void
efct_reset_stats(struct Scsi_Host *shost)
{ … }
static int
efct_issue_lip(struct Scsi_Host *shost)
{ … }
struct efct_vport *
efct_scsi_new_vport(struct efct *efct, struct device *dev)
{ … }
int efct_scsi_del_vport(struct efct *efct, struct Scsi_Host *shost)
{ … }
static int
efct_vport_create(struct fc_vport *fc_vport, bool disable)
{ … }
static int
efct_vport_delete(struct fc_vport *fc_vport)
{ … }
static int
efct_vport_disable(struct fc_vport *fc_vport, bool disable)
{ … }
static struct fc_function_template efct_xport_functions = …;
static struct fc_function_template efct_vport_functions = …;