#include "hfi.h"
#include "trace.h"
#include "qp.h"
#include "opfn.h"
#define IB_BTHE_E …
#define OPFN_CODE(code) …
#define OPFN_MASK(code) …
struct hfi1_opfn_type { … };
static struct hfi1_opfn_type hfi1_opfn_handlers[STL_VERBS_EXTD_MAX] = …;
static struct workqueue_struct *opfn_wq;
static void opfn_schedule_conn_request(struct rvt_qp *qp);
static bool hfi1_opfn_extended(u32 bth1)
{ … }
static void opfn_conn_request(struct rvt_qp *qp)
{ … }
void opfn_send_conn_request(struct work_struct *work)
{ … }
static void opfn_schedule_conn_request(struct rvt_qp *qp)
{ … }
void opfn_conn_response(struct rvt_qp *qp, struct rvt_ack_entry *e,
struct ib_atomic_eth *ateth)
{ … }
void opfn_conn_reply(struct rvt_qp *qp, u64 data)
{ … }
void opfn_conn_error(struct rvt_qp *qp)
{ … }
void opfn_qp_init(struct rvt_qp *qp, struct ib_qp_attr *attr, int attr_mask)
{ … }
void opfn_trigger_conn_request(struct rvt_qp *qp, u32 bth1)
{ … }
int opfn_init(void)
{ … }
void opfn_exit(void)
{ … }