#include <linux/errno.h>
#include <linux/types.h>
#include <linux/net.h>
#include <linux/scatterlist.h>
#include <linux/llist.h>
#include <asm/barrier.h>
#include <net/tcp.h>
#include <trace/events/sock.h>
#include "siw.h"
#include "siw_verbs.h"
#include "siw_mem.h"
static char siw_qp_state_to_string[SIW_QP_STATE_COUNT][sizeof "TERMINATE"] = …;
struct iwarp_msg_info iwarp_pktinfo[RDMAP_TERMINATE + 1] = …;
void siw_qp_llp_data_ready(struct sock *sk)
{ … }
void siw_qp_llp_close(struct siw_qp *qp)
{ … }
void siw_qp_llp_write_space(struct sock *sk)
{ … }
static int siw_qp_readq_init(struct siw_qp *qp, int irq_size, int orq_size)
{ … }
static int siw_qp_enable_crc(struct siw_qp *qp)
{ … }
int siw_qp_mpa_rts(struct siw_qp *qp, enum mpa_v2_ctrl ctrl)
{ … }
enum ddp_ecode siw_tagged_error(enum siw_access_state state)
{ … }
enum rdmap_ecode siw_rdmap_error(enum siw_access_state state)
{ … }
void siw_init_terminate(struct siw_qp *qp, enum term_elayer layer, u8 etype,
u8 ecode, int in_tx)
{ … }
void siw_send_terminate(struct siw_qp *qp)
{ … }
static void siw_qp_modify_nonstate(struct siw_qp *qp,
struct siw_qp_attrs *attrs,
enum siw_qp_attr_mask mask)
{ … }
static int siw_qp_nextstate_from_idle(struct siw_qp *qp,
struct siw_qp_attrs *attrs,
enum siw_qp_attr_mask mask)
{ … }
static int siw_qp_nextstate_from_rts(struct siw_qp *qp,
struct siw_qp_attrs *attrs)
{ … }
static void siw_qp_nextstate_from_term(struct siw_qp *qp,
struct siw_qp_attrs *attrs)
{ … }
static int siw_qp_nextstate_from_close(struct siw_qp *qp,
struct siw_qp_attrs *attrs)
{ … }
int siw_qp_modify(struct siw_qp *qp, struct siw_qp_attrs *attrs,
enum siw_qp_attr_mask mask)
{ … }
void siw_read_to_orq(struct siw_sqe *rreq, struct siw_sqe *sqe)
{ … }
static int siw_activate_tx_from_sq(struct siw_qp *qp)
{ … }
int siw_activate_tx(struct siw_qp *qp)
{ … }
static bool siw_cq_notify_now(struct siw_cq *cq, u32 flags)
{ … }
int siw_sqe_complete(struct siw_qp *qp, struct siw_sqe *sqe, u32 bytes,
enum siw_wc_status status)
{ … }
int siw_rqe_complete(struct siw_qp *qp, struct siw_rqe *rqe, u32 bytes,
u32 inval_stag, enum siw_wc_status status)
{ … }
void siw_sq_flush(struct siw_qp *qp)
{ … }
void siw_rq_flush(struct siw_qp *qp)
{ … }
int siw_qp_add(struct siw_device *sdev, struct siw_qp *qp)
{ … }
void siw_free_qp(struct kref *ref)
{ … }