#include <linux/skbuff.h>
#include <crypto/hash.h>
#include "rxe.h"
#include "rxe_loc.h"
#include "rxe_queue.h"
static int next_opcode(struct rxe_qp *qp, struct rxe_send_wqe *wqe,
u32 opcode);
static inline void retry_first_write_send(struct rxe_qp *qp,
struct rxe_send_wqe *wqe, int npsn)
{ … }
static void req_retry(struct rxe_qp *qp)
{ … }
void rnr_nak_timer(struct timer_list *t)
{ … }
static void req_check_sq_drain_done(struct rxe_qp *qp)
{ … }
static struct rxe_send_wqe *__req_next_wqe(struct rxe_qp *qp)
{ … }
static struct rxe_send_wqe *req_next_wqe(struct rxe_qp *qp)
{ … }
static int rxe_wqe_is_fenced(struct rxe_qp *qp, struct rxe_send_wqe *wqe)
{ … }
static int next_opcode_rc(struct rxe_qp *qp, u32 opcode, int fits)
{ … }
static int next_opcode_uc(struct rxe_qp *qp, u32 opcode, int fits)
{ … }
static int next_opcode(struct rxe_qp *qp, struct rxe_send_wqe *wqe,
u32 opcode)
{ … }
static inline int check_init_depth(struct rxe_qp *qp, struct rxe_send_wqe *wqe)
{ … }
static inline int get_mtu(struct rxe_qp *qp)
{ … }
static struct sk_buff *init_req_packet(struct rxe_qp *qp,
struct rxe_av *av,
struct rxe_send_wqe *wqe,
int opcode, u32 payload,
struct rxe_pkt_info *pkt)
{ … }
static int finish_packet(struct rxe_qp *qp, struct rxe_av *av,
struct rxe_send_wqe *wqe, struct rxe_pkt_info *pkt,
struct sk_buff *skb, u32 payload)
{ … }
static void update_wqe_state(struct rxe_qp *qp,
struct rxe_send_wqe *wqe,
struct rxe_pkt_info *pkt)
{ … }
static void update_wqe_psn(struct rxe_qp *qp,
struct rxe_send_wqe *wqe,
struct rxe_pkt_info *pkt,
u32 payload)
{ … }
static void update_state(struct rxe_qp *qp, struct rxe_pkt_info *pkt)
{ … }
static int rxe_do_local_ops(struct rxe_qp *qp, struct rxe_send_wqe *wqe)
{ … }
int rxe_requester(struct rxe_qp *qp)
{ … }
int rxe_sender(struct rxe_qp *qp)
{ … }