aboutsummaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown <mcb30@etherboot.org>2009-07-09 03:49:37 +0100
committerMichael Brown <mcb30@etherboot.org>2009-07-17 23:06:34 +0100
commit92cf24002018a19aec65c4a5f99cffb78e34d4c4 (patch)
tree00791d024122b382cdbee5c5f8df362c83ea7b66 /src/include
parent80c41b90d226b8f6d80feb221a4920a0e0a88da2 (diff)
downloadipxe-92cf24002018a19aec65c4a5f99cffb78e34d4c4.tar.gz
[infiniband] Always create an SMA and a GMA
Diffstat (limited to 'src/include')
-rw-r--r--src/include/gpxe/ib_gma.h10
-rw-r--r--src/include/gpxe/ib_sma.h24
-rw-r--r--src/include/gpxe/infiniband.h6
3 files changed, 7 insertions, 33 deletions
diff --git a/src/include/gpxe/ib_gma.h b/src/include/gpxe/ib_gma.h
index 9ba25ddf..4764a6cc 100644
--- a/src/include/gpxe/ib_gma.h
+++ b/src/include/gpxe/ib_gma.h
@@ -12,13 +12,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <gpxe/list.h>
#include <gpxe/retry.h>
#include <gpxe/tables.h>
+#include <gpxe/infiniband.h>
-struct ib_device;
-struct ib_completion_queue;
-struct ib_queue_pair;
-union ib_mad;
struct ib_gma;
-enum ib_queue_pair_type;
/** A GMA attribute handler */
struct ib_gma_handler {
@@ -68,8 +64,8 @@ struct ib_gma {
extern int ib_gma_request ( struct ib_gma *gma, union ib_mad *mad,
struct ib_address_vector *av, int retry );
-extern int ib_create_gma ( struct ib_gma *gma, struct ib_device *ibdev,
- enum ib_queue_pair_type type );
+extern struct ib_gma * ib_create_gma ( struct ib_device *ibdev,
+ enum ib_queue_pair_type type );
extern void ib_destroy_gma ( struct ib_gma *gma );
#endif /* _GPXE_IB_GMA_H */
diff --git a/src/include/gpxe/ib_sma.h b/src/include/gpxe/ib_sma.h
deleted file mode 100644
index 38cb6a2d..00000000
--- a/src/include/gpxe/ib_sma.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _GPXE_IB_SMA_H
-#define _GPXE_IB_SMA_H
-
-/** @file
- *
- * Infiniband Subnet Management Agent
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER );
-
-#include <gpxe/infiniband.h>
-#include <gpxe/ib_gma.h>
-
-/** An Infiniband Subnet Management Agent */
-struct ib_sma {
- /** General management agent */
- struct ib_gma gma;
-};
-
-extern int ib_create_sma ( struct ib_sma *sma, struct ib_device *ibdev );
-extern void ib_destroy_sma ( struct ib_sma *sma );
-
-#endif /* _GPXE_IB_SMA_H */
diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h
index 80e59bf5..9c1f57a0 100644
--- a/src/include/gpxe/infiniband.h
+++ b/src/include/gpxe/infiniband.h
@@ -14,7 +14,6 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <gpxe/device.h>
#include <gpxe/ib_packet.h>
#include <gpxe/ib_mad.h>
-#include <gpxe/ib_gma.h>
/** Subnet management QPN */
#define IB_QPN_SMA 0
@@ -46,6 +45,7 @@ struct ib_device;
struct ib_queue_pair;
struct ib_address_vector;
struct ib_completion_queue;
+struct ib_gma;
/** An Infiniband Work Queue */
struct ib_work_queue {
@@ -387,8 +387,10 @@ struct ib_device {
/** Outbound packet sequence number */
uint32_t psn;
+ /** Subnet management agent */
+ struct ib_gma *sma;
/** General management agent */
- struct ib_gma gma;
+ struct ib_gma *gma;
/** Driver private data */
void *drv_priv;