diff options
Diffstat (limited to 'roms/ipxe/src/include/ipxe/ib_mcast.h')
-rw-r--r-- | roms/ipxe/src/include/ipxe/ib_mcast.h | 21 |
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 ); |