#include <linux/errno.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/workqueue.h>
#include <linux/spinlock.h>
#include <linux/mempool.h>
#include <scsi/scsi_tcq.h>
#include "snic_io.h"
#include "snic.h"
#include "cq_enet_desc.h"
#include "snic_fwint.h"
static void
snic_wq_cmpl_frame_send(struct vnic_wq *wq,
struct cq_desc *cq_desc,
struct vnic_wq_buf *buf,
void *opaque)
{ … }
static int
snic_wq_cmpl_handler_cont(struct vnic_dev *vdev,
struct cq_desc *cq_desc,
u8 type,
u16 q_num,
u16 cmpl_idx,
void *opaque)
{ … }
int
snic_wq_cmpl_handler(struct snic *snic, int work_to_do)
{ … }
void
snic_free_wq_buf(struct vnic_wq *wq, struct vnic_wq_buf *buf)
{ … }
static int
snic_select_wq(struct snic *snic)
{ … }
static int
snic_wqdesc_avail(struct snic *snic, int q_num, int req_type)
{ … }
int
snic_queue_wq_desc(struct snic *snic, void *os_buf, u16 len)
{ … }
void
snic_handle_untagged_req(struct snic *snic, struct snic_req_info *rqi)
{ … }
struct snic_req_info *
snic_req_init(struct snic *snic, int sg_cnt)
{ … }
struct snic_host_req *
snic_abort_req_init(struct snic *snic, struct snic_req_info *rqi)
{ … }
struct snic_host_req *
snic_dr_req_init(struct snic *snic, struct snic_req_info *rqi)
{ … }
void
snic_req_free(struct snic *snic, struct snic_req_info *rqi)
{ … }
void
snic_pci_unmap_rsp_buf(struct snic *snic, struct snic_req_info *rqi)
{ … }
void
snic_free_all_untagged_reqs(struct snic *snic)
{ … }
void
snic_release_untagged_req(struct snic *snic, struct snic_req_info *rqi)
{ … }
void
snic_hex_dump(char *pfx, char *data, int len)
{ … }
#define LINE_BUFSZ …
static void
snic_dump_desc(const char *fn, char *os_buf, int len)
{ … }
void
snic_print_desc(const char *fn, char *os_buf, int len)
{ … }
void
snic_calc_io_process_time(struct snic *snic, struct snic_req_info *rqi)
{ … }