summaryrefslogtreecommitdiff
path: root/roms/ipxe/src/include/ipxe/ib_mcast.h
diff options
context:
space:
mode:
Diffstat (limited to 'roms/ipxe/src/include/ipxe/ib_mcast.h')
-rw-r--r--roms/ipxe/src/include/ipxe/ib_mcast.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/roms/ipxe/src/include/ipxe/ib_mcast.h b/roms/ipxe/src/include/ipxe/ib_mcast.h
index df348bd9b..564066975 100644
--- a/roms/ipxe/src/include/ipxe/ib_mcast.h
+++ b/roms/ipxe/src/include/ipxe/ib_mcast.h
@@ -17,25 +17,30 @@ struct ib_mad_transaction;
struct ib_mc_membership {
/** Queue pair */
struct ib_queue_pair *qp;
- /** Address vector */
- struct ib_address_vector *av;
- /** Attached to multicast GID */
- int attached;
+ /** Multicast GID */
+ union ib_gid gid;
/** Multicast group join transaction */
struct ib_mad_transaction *madx;
/** Handle join success/failure
*
+ * @v ibdev Infiniband device
+ * @v qp Queue pair
* @v membership Multicast group membership
* @v rc Status code
+ * @v mad Response MAD (or NULL on error)
*/
- void ( * complete ) ( struct ib_mc_membership *membership, int rc );
+ void ( * complete ) ( struct ib_device *ibdev, struct ib_queue_pair *qp,
+ struct ib_mc_membership *membership, int rc,
+ union ib_mad *mad );
};
extern int ib_mcast_join ( struct ib_device *ibdev, struct ib_queue_pair *qp,
struct ib_mc_membership *membership,
- struct ib_address_vector *av, unsigned int mask,
- void ( * joined ) ( struct ib_mc_membership *memb,
- int rc ) );
+ union ib_gid *gid,
+ void ( * joined ) ( struct ib_device *ibdev,
+ struct ib_queue_pair *qp,
+ struct ib_mc_membership *memb,
+ int rc, union ib_mad *mad ) );
extern void ib_mcast_leave ( struct ib_device *ibdev, struct ib_queue_pair *qp,
struct ib_mc_membership *membership );