summaryrefslogtreecommitdiffstats
path: root/src/include/gpxe/ib_qset.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/gpxe/ib_qset.h')
-rw-r--r--src/include/gpxe/ib_qset.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/include/gpxe/ib_qset.h b/src/include/gpxe/ib_qset.h
new file mode 100644
index 00000000..90c92a58
--- /dev/null
+++ b/src/include/gpxe/ib_qset.h
@@ -0,0 +1,38 @@
+#ifndef _GPXE_IB_QSET_H
+#define _GPXE_IB_QSET_H
+
+/** @file
+ *
+ * Infiniband queue sets
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+#include <stdint.h>
+#include <gpxe/infiniband.h>
+
+/** An Infiniband queue set */
+struct ib_queue_set {
+ /** Completion queue */
+ struct ib_completion_queue *cq;
+ /** Queue pair */
+ struct ib_queue_pair *qp;
+ /** Receive work queue maximum fill level */
+ unsigned int recv_max_fill;
+ /** Receive packet length */
+ size_t recv_pkt_len;
+};
+
+extern int ib_create_qset ( struct ib_device *ibdev,
+ struct ib_queue_set *qset, unsigned int num_cqes,
+ struct ib_completion_queue_operations *cq_op,
+ unsigned int num_send_wqes,
+ unsigned int num_recv_wqes, size_t recv_pkt_len,
+ unsigned long qkey );
+extern void ib_qset_refill_recv ( struct ib_device *ibdev,
+ struct ib_queue_set *qset );
+extern void ib_destroy_qset ( struct ib_device *ibdev,
+ struct ib_queue_set *qset );
+
+#endif /* _GPXE_IB_QSET_H */