The to_mxxx macro basically reinvents the CONTAINING_RECORD macro.  Just use 
CONTAINING_RECORD.

Signed-off-by: Fab Tillier <[email protected]>

Index: hw/mlx4/user/hca/mlx4.h
===================================================================
--- hw/mlx4/user/hca/mlx4.h     (revision 3414)
+++ hw/mlx4/user/hca/mlx4.h     (working copy)
@@ -276,44 +276,40 @@
        return (val + align - 1) & ~(align - 1);
 }
 
-#define to_mxxx(xxx, type)                                             \
-       ((struct mlx4_##type *)                                 \
-        ((uint8_t *) ib##xxx - offsetof(struct mlx4_##type, ibv_##xxx)))
-
 static inline struct mlx4_context *to_mctx(struct ibv_context *ibctx)
 {
-       return to_mxxx(ctx, context);
+       return CONTAINING_RECORD(ibctx, struct mlx4_context, ibv_ctx);
 }
 
 static inline struct mlx4_pd *to_mpd(struct ibv_pd *ibpd)
 {
-       return to_mxxx(pd, pd);
+       return CONTAINING_RECORD(ibpd, struct mlx4_pd, ibv_pd);
 }
 
 static inline struct mlx4_cq *to_mcq(struct ibv_cq *ibcq)
 {
-       return to_mxxx(cq, cq);
+       return CONTAINING_RECORD(ibcq, struct mlx4_cq, ibv_cq);
 }
 
 static inline struct mlx4_srq *to_msrq(struct ibv_srq *ibsrq)
 {
-       return to_mxxx(srq, srq);
+       return CONTAINING_RECORD(ibsrq, struct mlx4_srq, ibv_srq);
 }
 
 static inline struct mlx4_qp *to_mqp(struct ibv_qp *ibqp)
 {
-       return to_mxxx(qp, qp);
+       return CONTAINING_RECORD(ibqp, struct mlx4_qp, ibv_qp);
 }
 
 static inline struct mlx4_ah *to_mah(struct ibv_ah *ibah)
 {
-       return to_mxxx(ah, ah);
+       return CONTAINING_RECORD(ibah, struct mlx4_ah, ibv_ah);
 }
 
 #ifdef XRC_SUPPORT
 static inline struct mlx4_xrc_domain *to_mxrcd(struct ibv_xrc_domain *ibxrcd)
 {
-       return to_mxxx(xrcd, xrc_domain);
+       return CONTAINING_RECORD(ibxrcd, struct mlx4_xrcd, ibv_xrcd);
 }
 #endif

Attachment: 9.to_mxxx.patch
Description: 9.to_mxxx.patch

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to