Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ib_mcast.h 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef _IPXE_IB_MCAST_H
  2. #define _IPXE_IB_MCAST_H
  3. /** @file
  4. *
  5. * Infiniband multicast groups
  6. *
  7. */
  8. FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
  9. #include <ipxe/infiniband.h>
  10. struct ib_mad_transaction;
  11. /** An Infiniband multicast group membership */
  12. struct ib_mc_membership {
  13. /** Queue pair */
  14. struct ib_queue_pair *qp;
  15. /** Multicast GID */
  16. union ib_gid gid;
  17. /** Attached to multicast GID */
  18. int attached;
  19. /** Multicast group join transaction */
  20. struct ib_mad_transaction *madx;
  21. /** Handle join success/failure
  22. *
  23. * @v ibdev Infiniband device
  24. * @v qp Queue pair
  25. * @v membership Multicast group membership
  26. * @v rc Status code
  27. * @v mad Response MAD (or NULL on error)
  28. */
  29. void ( * complete ) ( struct ib_device *ibdev, struct ib_queue_pair *qp,
  30. struct ib_mc_membership *membership, int rc,
  31. union ib_mad *mad );
  32. };
  33. extern int ib_mcast_join ( struct ib_device *ibdev, struct ib_queue_pair *qp,
  34. struct ib_mc_membership *membership,
  35. union ib_gid *gid,
  36. void ( * joined ) ( struct ib_device *ibdev,
  37. struct ib_queue_pair *qp,
  38. struct ib_mc_membership *memb,
  39. int rc, union ib_mad *mad ) );
  40. extern void ib_mcast_leave ( struct ib_device *ibdev, struct ib_queue_pair *qp,
  41. struct ib_mc_membership *membership );
  42. #endif /* _IPXE_IB_MCAST_H */