@@ -158,7 +158,8 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
158158/* send posting */
159159#define MTL_PORTALS4_SET_SEND_BITS (match_bits , contextid , source , tag , type ) \
160160 { \
161- match_bits = contextid; \
161+ match_bits = 0; \
162+ match_bits |= contextid; \
162163 match_bits = (match_bits << 24); \
163164 match_bits |= source; \
164165 match_bits = (match_bits << 24); \
@@ -171,7 +172,7 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
171172 match_bits = 0; \
172173 ignore_bits = MTL_PORTALS4_PROTOCOL_IGNR; \
173174 \
174- match_bits = contextid; \
175+ match_bits | = contextid; \
175176 match_bits = (match_bits << 24); \
176177 \
177178 if (MPI_ANY_SOURCE == source) { \
@@ -193,38 +194,38 @@ extern mca_mtl_portals4_module_t ompi_mtl_portals4;
193194 (0 != (MTL_PORTALS4_SHORT_MSG & match_bits))
194195#define MTL_PORTALS4_IS_LONG_MSG (match_bits ) \
195196 (0 != (MTL_PORTALS4_LONG_MSG & match_bits))
196- #define MTL_PORTALS4_IS_READY_MSG (match_bits ) \
197- (0 != (MTL_PORTALS4_READY_MSG & match_bits))
198197
199198#define MTL_PORTALS4_GET_TAG (match_bits ) \
200199 ((int)(match_bits & MTL_PORTALS4_TAG_MASK))
201200#define MTL_PORTALS4_GET_SOURCE (match_bits ) \
202201 ((int)((match_bits & MTL_PORTALS4_SOURCE_MASK) >> 24))
202+ #define MTL_PORTALS4_GET_CONTEXT (match_bits ) \
203+ ((int)((match_bits & MTL_PORTALS4_CONTEXT_MASK) >> 48))
203204
204205
205- /* hda_data bit manipulation
206- *
207- * 0 1234567 01234567 01234567 0123 4567 01234567 01234567 01234567 01234567
208- * | | |
209- * ^| | context id | message tag
210- * || | |
211- * +---- is_sync
212- */
213-
214206#define MTL_PORTALS4_SYNC_MSG 0x8000000000000000ULL
215207
216- #define MTL_PORTALS4_SET_HDR_DATA (hdr_data , tag , contextid , sync ) \
208+ #define MTL_PORTALS4_SET_HDR_DATA (hdr_data , opcount , length , sync ) \
217209 { \
218- hdr_data = (sync) ? 1 : 0; \
219- hdr_data = (hdr_data << 39); \
220- hdr_data |= contextid; \
221- hdr_data = (hdr_data << 24); \
222- hdr_data |= (MTL_PORTALS4_TAG_MASK & tag); \
210+ hdr_data = 0; \
211+ hdr_data |= opcount & 0x7FFFULL; \
212+ hdr_data = (hdr_data << 48); \
213+ hdr_data | = (length & 0xFFFFFFFFFFFFULL); \
214+ hdr_data |= (sync ? MTL_PORTALS4_SYNC_MSG : 0); \
223215 }
224216
217+ #define MTL_PORTALS4_GET_LENGTH (hdr_data ) ((size_t)(hdr_data & 0xFFFFFFFFFFFFULL))
225218#define MTL_PORTALS4_IS_SYNC_MSG (hdr_data ) \
226219 (0 != (MTL_PORTALS4_SYNC_MSG & hdr_data))
227220
221+ #define MTL_PORTALS4_SET_READ_BITS (match_bits , contextid , tag ) \
222+ { \
223+ match_bits = 0; \
224+ match_bits |= (contextid & 0x0000000000FFFFFFULL); \
225+ match_bits = (match_bits << 24); \
226+ match_bits |= (tag & 0x0000000000FFFFFFULL); \
227+ }
228+
228229/* mtl-portals4 helpers */
229230OMPI_DECLSPEC ompi_proc_t *
230231ompi_mtl_portals4_get_proc_group (struct ompi_group_t * group , int rank );
0 commit comments