diff options
Diffstat (limited to 'debian/grub-extras/disabled/gpxe/src/include/gpxe/ib_mcast.h')
-rw-r--r-- | debian/grub-extras/disabled/gpxe/src/include/gpxe/ib_mcast.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/debian/grub-extras/disabled/gpxe/src/include/gpxe/ib_mcast.h b/debian/grub-extras/disabled/gpxe/src/include/gpxe/ib_mcast.h new file mode 100644 index 0000000..74eccd0 --- /dev/null +++ b/debian/grub-extras/disabled/gpxe/src/include/gpxe/ib_mcast.h @@ -0,0 +1,48 @@ +#ifndef _GPXE_IB_MCAST_H +#define _GPXE_IB_MCAST_H + +/** @file + * + * Infiniband multicast groups + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +#include <gpxe/infiniband.h> + +struct ib_mad_transaction; + +/** An Infiniband multicast group membership */ +struct ib_mc_membership { + /** Queue pair */ + struct ib_queue_pair *qp; + /** Multicast GID */ + struct 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_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_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 ); + +#endif /* _GPXE_IB_MCAST_H */ |