#ifndef __IB_MAD_PRIV_H__
#define __IB_MAD_PRIV_H__
#include <linux/completion.h>
#include <linux/err.h>
#include <linux/workqueue.h>
#include <rdma/ib_mad.h>
#include <rdma/ib_smi.h>
#include <rdma/opa_smi.h>
#define IB_MAD_QPS_CORE …
#define IB_MAD_QP_SEND_SIZE …
#define IB_MAD_QP_RECV_SIZE …
#define IB_MAD_QP_MIN_SIZE …
#define IB_MAD_QP_MAX_SIZE …
#define IB_MAD_SEND_REQ_MAX_SG …
#define IB_MAD_RECV_REQ_MAX_SG …
#define IB_MAD_SEND_Q_PSN …
#define MAX_MGMT_CLASS …
#define MAX_MGMT_VERSION …
#define MAX_MGMT_OUI …
#define MAX_MGMT_VENDOR_RANGE2 …
struct ib_mad_list_head { … };
struct ib_mad_private_header { … } __packed;
struct ib_mad_private { … } __packed;
struct ib_rmpp_segment { … };
struct ib_mad_agent_private { … };
struct ib_mad_snoop_private { … };
struct ib_mad_send_wr_private { … };
struct ib_mad_local_private { … };
struct ib_mad_mgmt_method_table { … };
struct ib_mad_mgmt_class_table { … };
struct ib_mad_mgmt_vendor_class { … };
struct ib_mad_mgmt_vendor_class_table { … };
struct ib_mad_mgmt_version_table { … };
struct ib_mad_queue { … };
struct ib_mad_qp_info { … };
struct ib_mad_port_private { … };
int ib_send_mad(struct ib_mad_send_wr_private *mad_send_wr);
struct ib_mad_send_wr_private *
ib_find_send_mad(const struct ib_mad_agent_private *mad_agent_priv,
const struct ib_mad_recv_wc *mad_recv_wc);
void ib_mad_complete_send_wr(struct ib_mad_send_wr_private *mad_send_wr,
struct ib_mad_send_wc *mad_send_wc);
void ib_mark_mad_done(struct ib_mad_send_wr_private *mad_send_wr);
void ib_reset_mad_timeout(struct ib_mad_send_wr_private *mad_send_wr,
unsigned long timeout_ms);
#endif