diff --git a/ompi/mca/bml/base/bml_base_btl.c b/ompi/mca/bml/base/bml_base_btl.c index c88fc4680b..34376898c5 100644 --- a/ompi/mca/bml/base/bml_base_btl.c +++ b/ompi/mca/bml/base/bml_base_btl.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -85,7 +83,7 @@ static void mca_bml_base_completion( { mca_bml_base_context_t* ctx = (mca_bml_base_context_t*) des->des_cbdata; /* restore original state */ - ((unsigned char*)OMPI_PTR_GET_PVAL(des->des_src[0].seg_addr))[ctx->index] ^= ~0; + ((unsigned char*)des->des_src[0].seg_addr.pval)[ctx->index] ^= ~0; des->des_cbdata = ctx->cbdata; des->des_cbfunc = ctx->cbfunc; free(ctx); @@ -123,7 +121,7 @@ int mca_bml_base_send( ctx->index = (size_t) ((des->des_src[0].seg_len * rand() * 1.0) / (RAND_MAX + 1.0)); ctx->cbfunc = des->des_cbfunc; ctx->cbdata = des->des_cbdata; - ((unsigned char*)OMPI_PTR_GET_PVAL(des->des_src[0].seg_addr))[ctx->index] ^= ~0; + ((unsigned char*)des->des_src[0].seg_addr.pval)[ctx->index] ^= ~0; des->des_cbdata = ctx; des->des_cbfunc = mca_bml_base_completion; } diff --git a/ompi/mca/btl/gm/btl_gm.c b/ompi/mca/btl/gm/btl_gm.c index ae970f2cb2..44f58a671f 100644 --- a/ompi/mca/btl/gm/btl_gm.c +++ b/ompi/mca/btl/gm/btl_gm.c @@ -10,8 +10,6 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2006 Myricom, Inc. All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -310,7 +308,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_src( } frag->segment.seg_len = max_data; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, iov.iov_base); + frag->segment.seg_addr.pval = iov.iov_base; frag->base.des_src = &frag->segment; frag->base.des_src_cnt = 1; @@ -346,7 +344,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_src( } iov.iov_len = max_data; - iov.iov_base = (unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + reserve; + iov.iov_base = (unsigned char*) frag->segment.seg_addr.pval + reserve; rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data); if(rc < 0) { MCA_BTL_GM_FRAG_RETURN(btl, frag); @@ -411,8 +409,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_dst( frag->type = MCA_BTL_GM_PUT; frag->segment.seg_len = *size; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, - convertor->pBaseBuf + lb + convertor->bConverted); + frag->segment.seg_addr.pval = convertor->pBaseBuf + lb + convertor->bConverted; frag->base.des_src = NULL; frag->base.des_src_cnt = 0; @@ -421,7 +418,7 @@ mca_btl_base_descriptor_t* mca_btl_gm_prepare_dst( frag->base.des_flags = 0; if(NULL == registration) { rc = mpool->mpool_register( mpool, - OMPI_PTR_GET_PVAL(frag->segment.seg_addr), + frag->segment.seg_addr.pval, frag->segment.seg_len, 0, ®istration ); @@ -723,8 +720,12 @@ static int mca_btl_gm_put_nl( /* post the put descriptor */ gm_put(gm_btl->port, - OMPI_PTR_GET_PVAL(des->des_src->seg_addr), - OMPI_PTR_GET_LVAL(des->des_dst->seg_addr), + des->des_src->seg_addr.pval, +#if GM_SIZEOF_VOID_P == 4 + des->des_dst->seg_addr.ival, +#else + des->des_dst->seg_addr.lval, +#endif des->des_src->seg_len, GM_LOW_PRIORITY, endpoint->endpoint_addr.node_id, @@ -765,8 +766,12 @@ int mca_btl_gm_put( /* post the put descriptor */ gm_put(gm_btl->port, - OMPI_PTR_GET_PVAL(des->des_src->seg_addr), - OMPI_PTR_GET_LVAL(des->des_dst->seg_addr), + des->des_src->seg_addr.pval, +#if GM_SIZEOF_VOID_P == 4 + des->des_dst->seg_addr.ival, +#else + des->des_dst->seg_addr.lval, +#endif des->des_src->seg_len, GM_LOW_PRIORITY, endpoint->endpoint_addr.node_id, @@ -871,8 +876,12 @@ static int mca_btl_gm_get_nl( /* post get put descriptor */ gm_get(gm_btl->port, - OMPI_PTR_GET_LVAL(des->des_dst->seg_addr), - OMPI_PTR_GET_PVAL(des->des_src->seg_addr), +#if GM_SIZEOF_VOID_P == 4 + des->des_dst->seg_addr.ival, +#else + des->des_dst->seg_addr.lval, +#endif + des->des_src->seg_addr.pval, des->des_src->seg_len, GM_LOW_PRIORITY, endpoint->endpoint_addr.node_id, @@ -914,8 +923,12 @@ int mca_btl_gm_get( /* post get put descriptor */ gm_get(gm_btl->port, - OMPI_PTR_GET_LVAL(des->des_dst->seg_addr), - OMPI_PTR_GET_PVAL(des->des_src->seg_addr), +#if GM_SIZEOF_VOID_P == 4 + des->des_dst->seg_addr.ival, +#else + des->des_dst->seg_addr.lval, +#endif + des->des_src->seg_addr.pval, des->des_src->seg_len, GM_LOW_PRIORITY, endpoint->endpoint_addr.node_id, diff --git a/ompi/mca/btl/gm/btl_gm_component.c b/ompi/mca/btl/gm/btl_gm_component.c index f96b269059..8c857698f2 100644 --- a/ompi/mca/btl/gm/btl_gm_component.c +++ b/ompi/mca/btl/gm/btl_gm_component.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -593,7 +591,7 @@ int mca_btl_gm_component_progress() mca_btl_gm_frag_t* frag = (mca_btl_gm_frag_t*)(buffer - sizeof(mca_btl_gm_frag_t)); mca_btl_base_header_t* hdr = (mca_btl_base_header_t *)gm_ntohp(event->recv.message); mca_btl_base_recv_reg_t* reg; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, (hdr+1)); + frag->segment.seg_addr.pval = (hdr+1); frag->segment.seg_len = gm_ntohl(event->recv.length) - sizeof(mca_btl_base_header_t); reg = &btl->gm_reg[hdr->tag]; @@ -620,7 +618,7 @@ int mca_btl_gm_component_progress() mca_btl_gm_frag_t* frag = (mca_btl_gm_frag_t*)(buffer - sizeof(mca_btl_gm_frag_t)); mca_btl_base_header_t* hdr = (mca_btl_base_header_t*)buffer; mca_btl_base_recv_reg_t* reg; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, (hdr+1)); + frag->segment.seg_addr.pval = (hdr+1); frag->segment.seg_len = gm_ntohl(event->recv.length) - sizeof(mca_btl_base_header_t); reg = &btl->gm_reg[hdr->tag]; if(reg->cbfunc) { @@ -686,7 +684,7 @@ static void* mca_btl_gm_progress_thread( opal_object_t* arg ) mca_btl_gm_frag_t* frag = (mca_btl_gm_frag_t*)(buffer - sizeof(mca_btl_gm_frag_t)); mca_btl_base_header_t* hdr = (mca_btl_base_header_t *)gm_ntohp(event->recv.message); mca_btl_base_recv_reg_t* reg; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, (hdr+1)); + frag->segment.seg_addr.pval = (hdr+1); frag->segment.seg_len = gm_ntohl(event->recv.length) - sizeof(mca_btl_base_header_t); reg = &btl->gm_reg[hdr->tag]; @@ -706,7 +704,7 @@ static void* mca_btl_gm_progress_thread( opal_object_t* arg ) mca_btl_gm_frag_t* frag = (mca_btl_gm_frag_t*)(buffer - sizeof(mca_btl_gm_frag_t)); mca_btl_base_header_t* hdr = (mca_btl_base_header_t*)buffer; mca_btl_base_recv_reg_t* reg; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, (hdr+1)); + frag->segment.seg_addr.pval = (hdr+1); frag->segment.seg_len = gm_ntohl(event->recv.length) - sizeof(mca_btl_base_header_t); reg = &btl->gm_reg[hdr->tag]; diff --git a/ompi/mca/btl/gm/btl_gm_frag.c b/ompi/mca/btl/gm/btl_gm_frag.c index 6fef77eeff..65c75ebc04 100644 --- a/ompi/mca/btl/gm/btl_gm_frag.c +++ b/ompi/mca/btl/gm/btl_gm_frag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -32,7 +30,7 @@ do { \ static void mca_btl_gm_frag_eager_constructor(mca_btl_gm_frag_t* frag) { frag->hdr = (mca_btl_base_header_t*)(frag + 1); - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, (unsigned char*)(frag->hdr + 1)); + frag->segment.seg_addr.pval = (unsigned char*)(frag->hdr + 1); frag->segment.seg_len = mca_btl_gm_module.super.btl_eager_limit - sizeof(mca_btl_base_header_t); frag->size = mca_btl_gm_component.gm_eager_frag_size; MCA_BTL_GM_FRAG_COMMON_CONSTRUCTOR(frag); @@ -41,7 +39,7 @@ static void mca_btl_gm_frag_eager_constructor(mca_btl_gm_frag_t* frag) static void mca_btl_gm_frag_max_constructor(mca_btl_gm_frag_t* frag) { frag->hdr = (mca_btl_base_header_t*)(frag + 1); - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, (unsigned char*)(frag->hdr + 1)); + frag->segment.seg_addr.pval = (unsigned char*)(frag->hdr + 1); frag->segment.seg_len = mca_btl_gm_module.super.btl_max_send_size - sizeof(mca_btl_base_header_t); frag->size = mca_btl_gm_component.gm_max_frag_size; MCA_BTL_GM_FRAG_COMMON_CONSTRUCTOR(frag); diff --git a/ompi/mca/btl/mvapi/btl_mvapi.c b/ompi/mca/btl/mvapi/btl_mvapi.c index 544a686e23..36b3a54e9f 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi.c +++ b/ompi/mca/btl/mvapi/btl_mvapi.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -322,7 +320,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_src( frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t)iov.iov_base; frag->segment.seg_len = max_data; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, iov.iov_base); + frag->segment.seg_addr.pval = iov.iov_base; frag->segment.seg_key.key32[0] = (uint32_t)frag->sg_entry.lkey; BTL_VERBOSE(("frag->sg_entry.lkey = %lu .addr = %llu " @@ -352,7 +350,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_src( } iov.iov_len = max_data; - iov.iov_base = (unsigned char*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + reserve; + iov.iov_base = (unsigned char*)frag->segment.seg_addr.pval + reserve; rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data); if( rc < 0 ) { MCA_BTL_IB_FRAG_RETURN(mvapi_btl, frag); @@ -410,7 +408,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_dst( ompi_ddt_type_lb(convertor->pDesc, &lb); frag->segment.seg_len = *size; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, convertor->pBaseBuf + lb + convertor->bConverted); + frag->segment.seg_addr.pval = convertor->pBaseBuf + lb + convertor->bConverted; frag->base.des_flags = 0; if(NULL == registration) { @@ -418,10 +416,10 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_dst( * ourselves */ rc = btl->btl_mpool->mpool_register(btl->btl_mpool, - OMPI_PTR_GET_PVAL(frag->segment.seg_addr), *size, 0, ®istration); + frag->segment.seg_addr.pval, *size, 0, ®istration); if(OMPI_SUCCESS != rc || NULL == registration) { BTL_ERROR(("mpool_register(%p,%lu) failed: base %p lb %lu offset %lu", - OMPI_PTR_GET_PVAL(frag->segment.seg_addr), *size, convertor->pBaseBuf, lb, convertor->bConverted)); + frag->segment.seg_addr.pval, *size, convertor->pBaseBuf, lb, convertor->bConverted)); MCA_BTL_IB_FRAG_RETURN(btl, frag); return NULL; } @@ -431,7 +429,7 @@ mca_btl_base_descriptor_t* mca_btl_mvapi_prepare_dst( frag->sg_entry.len = *size; frag->sg_entry.lkey = mvapi_reg->l_key; - frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->segment.seg_addr.pval; frag->segment.seg_key.key32[0] =mvapi_reg->r_key; @@ -497,9 +495,9 @@ int mca_btl_mvapi_put( mca_btl_base_module_t* btl, } else { frag->sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; - frag->sr_desc.remote_addr = (VAPI_virt_addr_t) (MT_virt_addr_t) OMPI_PTR_GET_PVAL(frag->base.des_dst->seg_addr); + frag->sr_desc.remote_addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->base.des_dst->seg_addr.pval; frag->sr_desc.r_key = frag->base.des_dst->seg_key.key32[0]; - frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) OMPI_PTR_GET_PVAL(frag->base.des_src->seg_addr); + frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->base.des_src->seg_addr.pval; frag->sg_entry.len = frag->base.des_src->seg_len; if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, &frag->sr_desc)) { rc = OMPI_ERROR; @@ -558,9 +556,9 @@ int mca_btl_mvapi_get( mca_btl_base_module_t* btl, } else { frag->sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; - frag->sr_desc.remote_addr = (VAPI_virt_addr_t) (MT_virt_addr_t) OMPI_PTR_GET_PVAL(frag->base.des_src->seg_addr); + frag->sr_desc.remote_addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->base.des_src->seg_addr.pval; frag->sr_desc.r_key = frag->base.des_src->seg_key.key32[0]; - frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) OMPI_PTR_GET_PVAL(frag->base.des_dst->seg_addr); + frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->base.des_dst->seg_addr.pval; frag->sg_entry.len = frag->base.des_dst->seg_len; if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, &frag->sr_desc)) { diff --git a/ompi/mca/btl/mvapi/btl_mvapi.h b/ompi/mca/btl/mvapi/btl_mvapi.h index 7f3b16d145..7c880007c9 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi.h +++ b/ompi/mca/btl/mvapi/btl_mvapi.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -260,7 +258,7 @@ typedef struct mca_btl_mvapi_reg_t mca_btl_mvapi_reg_t; OMPI_FREE_LIST_WAIT(frag_list, item, rc); \ frag = (mca_btl_mvapi_frag_t*) item; \ frag->sg_entry.len = frag->size + \ - ((unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) - \ + ((unsigned char*) frag->segment.seg_addr.pval- \ (unsigned char*) frag->hdr); \ desc_post[i] = frag->rr_desc; \ }\ diff --git a/ompi/mca/btl/mvapi/btl_mvapi_component.c b/ompi/mca/btl/mvapi/btl_mvapi_component.c index 727b2d8b95..2b5e3672d9 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi_component.c +++ b/ompi/mca/btl/mvapi/btl_mvapi_component.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -309,7 +307,7 @@ static void mca_btl_mvapi_control( /* dont return credits used for control messages */ mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*)descriptor; mca_btl_mvapi_endpoint_t* endpoint = frag->endpoint; - mca_btl_mvapi_control_header_t *ctl_hdr = OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + mca_btl_mvapi_control_header_t *ctl_hdr = frag->segment.seg_addr.pval; mca_btl_mvapi_eager_rdma_header_t *rdma_hdr; if(frag->size == mca_btl_mvapi_component.eager_limit) { @@ -327,13 +325,12 @@ static void mca_btl_mvapi_control( break; case MCA_BTL_MVAPI_CONTROL_RDMA: rdma_hdr = (mca_btl_mvapi_eager_rdma_header_t*)ctl_hdr; - if (OMPI_PTR_GET_PVAL(endpoint->eager_rdma_remote.base)) { + if (endpoint->eager_rdma_remote.base.pval) { BTL_ERROR(("Got RDMA connect twise!\n")); return; } endpoint->eager_rdma_remote.rkey = rdma_hdr->rkey; - OMPI_PTR_SET_PVAL(endpoint->eager_rdma_remote.base, - OMPI_PTR_GET_PVAL(rdma_hdr->rdma_start)); + endpoint->eager_rdma_remote.base.pval = rdma_hdr->rdma_start.pval; endpoint->eager_rdma_remote.tokens = mca_btl_mvapi_component.eager_rdma_num - 1; break; @@ -682,7 +679,7 @@ int mca_btl_mvapi_handle_incoming_hp( { /* advance the segment address past the header and subtract from the length..*/ frag->segment.seg_len = byte_len- - ((unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) - + ((unsigned char*) frag->segment.seg_addr.pval - (unsigned char*) frag->hdr); /* call registered callback */ @@ -715,7 +712,7 @@ int mca_btl_mvapi_handle_incoming_hp( } if (mca_btl_mvapi_component.use_eager_rdma && - !OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base) && + !endpoint->eager_rdma_local.base.pval && mvapi_btl->eager_rdma_buffers_count < mca_btl_mvapi_component.max_eager_rdma && OPAL_THREAD_ADD32(&endpoint->eager_recv_count, 1) == @@ -816,7 +813,7 @@ int mca_btl_mvapi_component_progress( void ) OPAL_THREAD_UNLOCK(&endpoint->eager_rdma_local.lock); frag->hdr = (mca_btl_mvapi_header_t*)(((char*)frag->ftr) - size + sizeof(mca_btl_mvapi_footer_t)); - OMPI_PTR_GET_PVAL(frag->segment.seg_addr) = ((unsigned char* )frag->hdr) + + frag->segment.seg_addr.pval = ((unsigned char* )frag->hdr) + sizeof(mca_btl_mvapi_header_t); hret = mca_btl_mvapi_handle_incoming_hp(mvapi_btl, @@ -1042,7 +1039,7 @@ int mca_btl_mvapi_component_progress( void ) /* advance the segment address past the header and subtract from the length..*/ frag->segment.seg_len = comp.byte_len- - ((unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) - (unsigned char*) frag->hdr); + ((unsigned char*) frag->segment.seg_addr.pval - (unsigned char*) frag->hdr); /* call registered callback */ mvapi_btl->ib_reg[frag->hdr->tag].cbfunc(&mvapi_btl->super, diff --git a/ompi/mca/btl/mvapi/btl_mvapi_eager_rdma.h b/ompi/mca/btl/mvapi/btl_mvapi_eager_rdma.h index e917e1608b..dd33349a9f 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi_eager_rdma.h +++ b/ompi/mca/btl/mvapi/btl_mvapi_eager_rdma.h @@ -1,7 +1,5 @@ /* * Copyright (c) 2006 Voltaire All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -76,7 +74,7 @@ typedef struct mca_btl_mvapi_eager_rdma_remote_t mca_btl_mvapi_eager_rdma_remote #define MCA_BTL_MVAPI_GET_LOCAL_RDMA_FRAG(E, I) \ (mca_btl_mvapi_frag_t*) \ - ((char*)OMPI_PTR_GET_PVAL((E)->eager_rdma_local.base) + \ + ((char*)(E)->eager_rdma_local.base.pval + \ (I) * (E)->endpoint_btl->eager_rdma_frag_size) #define MCA_BTL_MVAPI_RDMA_NEXT_INDEX(I) do { \ diff --git a/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c b/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c index 56d973765f..3ea1ea1000 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c +++ b/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c @@ -154,7 +154,7 @@ static inline int mca_btl_mvapi_endpoint_post_send( if(do_rdma) { mca_btl_mvapi_footer_t* ftr = - (mca_btl_mvapi_footer_t*)(((char*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr)) + + (mca_btl_mvapi_footer_t*)(((char*)frag->segment.seg_addr.pval) + frag->segment.seg_len); frag->sr_desc.opcode = VAPI_RDMA_WRITE; MCA_BTL_MVAPI_RDMA_FRAG_SET_SIZE(ftr, frag->sg_entry.len); @@ -164,7 +164,7 @@ static inline int mca_btl_mvapi_endpoint_post_send( #endif frag->sr_desc.r_key = (VAPI_rkey_t)endpoint->eager_rdma_remote.rkey; frag->sr_desc.remote_addr = (VAPI_virt_addr_t) - OMPI_PTR_GET_LVAL(endpoint->eager_rdma_remote.base) + + endpoint->eager_rdma_remote.base.lval + endpoint->eager_rdma_remote.head * mvapi_btl->eager_rdma_frag_size + sizeof(mca_btl_mvapi_frag_t) + @@ -1073,7 +1073,7 @@ void mca_btl_mvapi_endpoint_send_credits_lp( frag->hdr->tag = MCA_BTL_TAG_BTL; frag->hdr->credits = endpoint->rd_credits_lp; OPAL_THREAD_ADD32(&endpoint->rd_credits_lp, -frag->hdr->credits); - ((mca_btl_mvapi_control_header_t *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr))->type = MCA_BTL_MVAPI_CONTROL_NOOP; + ((mca_btl_mvapi_control_header_t *)frag->segment.seg_addr.pval)->type = MCA_BTL_MVAPI_CONTROL_NOOP; frag->sr_desc.opcode = VAPI_SEND; frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->hdr; @@ -1151,7 +1151,7 @@ void mca_btl_mvapi_endpoint_send_credits_hp( frag->hdr->rdma_credits = endpoint->eager_rdma_local.credits; OPAL_THREAD_ADD32(&endpoint->eager_rdma_local.credits, -frag->hdr->rdma_credits); - ((mca_btl_mvapi_control_header_t *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr))->type = MCA_BTL_MVAPI_CONTROL_NOOP; + ((mca_btl_mvapi_control_header_t *)frag->segment.seg_addr.pval)->type = MCA_BTL_MVAPI_CONTROL_NOOP; frag->sr_desc.opcode = VAPI_SEND; @@ -1203,10 +1203,10 @@ static int mca_btl_mvapi_endpoint_send_eager_rdma( frag->base.des_flags |= MCA_BTL_DES_FLAGS_PRIORITY; frag->hdr->tag = MCA_BTL_TAG_BTL; - rdma_hdr = (mca_btl_mvapi_eager_rdma_header_t*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + rdma_hdr = (mca_btl_mvapi_eager_rdma_header_t*)frag->segment.seg_addr.pval; rdma_hdr->control.type = MCA_BTL_MVAPI_CONTROL_RDMA; rdma_hdr->rkey = endpoint->eager_rdma_local.reg->r_key; - OMPI_PTR_SET_PVAL(rdma_hdr->rdma_start, OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base)); + rdma_hdr->rdma_start.pval = endpoint->eager_rdma_local.base.pval; frag->segment.seg_len = sizeof(mca_btl_mvapi_eager_rdma_header_t); if (mca_btl_mvapi_endpoint_post_send(mvapi_btl, endpoint, frag) != OMPI_SUCCESS) { @@ -1225,7 +1225,7 @@ void mca_btl_mvapi_endpoint_connect_eager_rdma( unsigned int i; OPAL_THREAD_LOCK(&endpoint->eager_rdma_local.lock); - if (OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base)) + if (endpoint->eager_rdma_local.base.pval) goto unlock_rdma_local; buf = mvapi_btl->super.btl_mpool->mpool_alloc(mvapi_btl->super.btl_mpool, @@ -1251,7 +1251,7 @@ void mca_btl_mvapi_endpoint_connect_eager_rdma( mvapi_btl->eager_rdma_buffers, endpoint) < 0) goto cleanup; - OMPI_PTR_SET_PVAL(endpoint->eager_rdma_local.base, buf); + endpoint->eager_rdma_local.base.pval = buf; mvapi_btl->eager_rdma_buffers_count++; if (mca_btl_mvapi_endpoint_send_eager_rdma(endpoint) == 0) { OPAL_THREAD_UNLOCK(&mvapi_btl->eager_rdma_lock); @@ -1260,7 +1260,7 @@ void mca_btl_mvapi_endpoint_connect_eager_rdma( } mvapi_btl->eager_rdma_buffers_count--; - OMPI_PTR_SET_PVAL(endpoint->eager_rdma_local.base, NULL); + endpoint->eager_rdma_local.base.pval = NULL; orte_pointer_array_set_item(mvapi_btl->eager_rdma_buffers, endpoint->eager_rdma_index, NULL); diff --git a/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h b/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h index cce3c03d22..828ab6cc46 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h +++ b/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -234,7 +232,7 @@ do { \ frag = (mca_btl_mvapi_frag_t*) item; \ frag->endpoint = my_endpoint; \ frag->sg_entry.len = frag->size + \ - ((unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) - \ + ((unsigned char*) frag->segment.seg_addr.pval- \ (unsigned char*) frag->hdr); \ desc_post[i] = frag->rr_desc; \ }\ diff --git a/ompi/mca/btl/mvapi/btl_mvapi_frag.c b/ompi/mca/btl/mvapi/btl_mvapi_frag.c index 099f1cbed9..6879dafa8d 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi_frag.c +++ b/ompi/mca/btl/mvapi/btl_mvapi_frag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -26,8 +24,7 @@ static void mca_btl_mvapi_frag_common_constructor( mca_btl_mvapi_frag_t* frag) mca_btl_mvapi_reg_t* mem_hndl = (mca_btl_mvapi_reg_t*)frag->base.super.user_data; frag->hdr = (mca_btl_mvapi_header_t*) (frag+1); /* initialize btl header to start at end of frag */ - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, - ((unsigned char* )frag->hdr) + sizeof(mca_btl_mvapi_header_t)); + frag->segment.seg_addr.pval = ((unsigned char* )frag->hdr) + sizeof(mca_btl_mvapi_header_t); /* init the segment address to start after the btl header */ frag->segment.seg_len = frag->size; @@ -106,7 +103,7 @@ static void mca_btl_mvapi_recv_frag_eager_constructor(mca_btl_mvapi_frag_t* frag frag->size = mca_btl_mvapi_component.eager_limit; frag->type = MCA_BTL_MVAPI_FRAG_EAGER; mca_btl_mvapi_recv_frag_common_constructor(frag); - frag->ftr = (mca_btl_mvapi_footer_t*)((char*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + frag->ftr = (mca_btl_mvapi_footer_t*)((char*)frag->segment.seg_addr.pval + frag->size); MCA_BTL_MVAPI_RDMA_MAKE_REMOTE(frag->ftr); } diff --git a/ompi/mca/btl/mx/btl_mx.c b/ompi/mca/btl/mx/btl_mx.c index e02e38e9a7..2bdbce5cb3 100644 --- a/ompi/mca/btl/mx/btl_mx.c +++ b/ompi/mca/btl/mx/btl_mx.c @@ -176,7 +176,7 @@ mca_btl_base_descriptor_t* mca_btl_mx_alloc( struct mca_btl_base_module_t* btl, frag->segment[0].seg_len = size <= mx_btl->super.btl_eager_limit ? size : mx_btl->super.btl_eager_limit ; - OMPI_PTR_SET_PVAL(frag->segment[0].seg_addr, (void*)(frag+1)); + frag->segment[0].seg_addr.pval = (void*)(frag+1); frag->base.des_src = frag->segment; frag->base.des_src_cnt = 1; frag->base.des_flags = 0; @@ -252,8 +252,7 @@ mca_btl_mx_prepare_src( struct mca_btl_base_module_t* btl, return NULL; } frag->base.des_src_cnt = 1; - iov.iov_base = (void*)((unsigned char*)OMPI_PTR_GET_PVAL(frag->segment[0].seg_addr) - + reserve); + iov.iov_base = (void*)((unsigned char*)frag->segment[0].seg_addr.pval + reserve); } iov.iov_len = max_data; @@ -263,11 +262,11 @@ mca_btl_mx_prepare_src( struct mca_btl_base_module_t* btl, if( 1 == frag->base.des_src_cnt ) { frag->segment[0].seg_len = reserve + max_data; if( 0 == reserve ) - OMPI_PTR_SET_PVAL(frag->segment[0].seg_addr, iov.iov_base); + frag->segment[0].seg_addr.pval = iov.iov_base; } else { frag->segment[0].seg_len = reserve; frag->segment[1].seg_len = max_data; - OMPI_PTR_SET_PVAL(frag->segment[1].seg_addr, iov.iov_base); + frag->segment[1].seg_addr.pval = iov.iov_base; } frag->base.des_src = frag->segment; return &frag->base; @@ -306,10 +305,10 @@ mca_btl_base_descriptor_t* mca_btl_mx_prepare_dst( struct mca_btl_base_module_t* } frag->segment[0].seg_len = *size; - OMPI_PTR_SET_PVAL(frag->segment[0].seg_addr, convertor->pBaseBuf + convertor->bConverted); + frag->segment[0].seg_addr.pval = convertor->pBaseBuf + convertor->bConverted; frag->segment[0].seg_key.key64 = (uint64_t)(intptr_t)frag; - mx_segment.segment_ptr = OMPI_PTR_GET_PVAL(frag->segment[0].seg_addr); + mx_segment.segment_ptr = frag->segment[0].seg_addr.pval; mx_segment.segment_length = frag->segment[0].seg_len; mx_return = mx_irecv( mx_btl->mx_endpoint, &mx_segment, 1, frag->segment[0].seg_key.key64, BTL_MX_PUT_MASK, NULL, &(frag->mx_request) ); @@ -359,7 +358,7 @@ static int mca_btl_mx_put( struct mca_btl_base_module_t* btl, frag->tag = 0xff; do { - mx_segment[i].segment_ptr = OMPI_PTR_GET_PVAL(descriptor->des_src[i].seg_addr); + mx_segment[i].segment_ptr = descriptor->des_src[i].seg_addr.pval; mx_segment[i].segment_length = descriptor->des_src[i].seg_len; } while (++i < descriptor->des_src_cnt); @@ -409,7 +408,7 @@ int mca_btl_mx_send( struct mca_btl_base_module_t* btl, frag->tag = 0xff; do { - mx_segment[i].segment_ptr = OMPI_PTR_GET_PVAL(descriptor->des_src[i].seg_addr); + mx_segment[i].segment_ptr = descriptor->des_src[i].seg_addr.pval; mx_segment[i].segment_length = descriptor->des_src[i].seg_len; total_length += descriptor->des_src[i].seg_len; } while (++i < descriptor->des_src_cnt); diff --git a/ompi/mca/btl/mx/btl_mx_component.c b/ompi/mca/btl/mx/btl_mx_component.c index 60a341d57c..709ceece01 100644 --- a/ompi/mca/btl/mx/btl_mx_component.c +++ b/ompi/mca/btl/mx/btl_mx_component.c @@ -210,7 +210,7 @@ mca_btl_mx_unexpected_handler( void *context, mx_endpoint_addr_t source, assert( tag < 16 ); reg = &(mx_btl->mx_reg[tag]); - OMPI_PTR_SET_PVAL(segment.seg_addr, data_if_available); + segment.seg_addr.pval = data_if_available; segment.seg_len = length; descriptor.des_dst = &segment; descriptor.des_dst_cnt = 1; @@ -553,7 +553,7 @@ int mca_btl_mx_component_progress(void) * Now we can register the fragment * again with the MX BTL. */ - mx_segment.segment_ptr = OMPI_PTR_GET_PVAL(frag->base.des_dst->seg_addr); + mx_segment.segment_ptr = frag->base.des_dst->seg_addr.pval; mx_segment.segment_length = mca_btl_mx_module.super.btl_eager_limit; mx_return = mx_irecv( mx_btl->mx_endpoint, &mx_segment, 1, (uint64_t)frag->tag, BTL_MX_RECV_MASK, diff --git a/ompi/mca/btl/mx/btl_mx_frag.h b/ompi/mca/btl/mx/btl_mx_frag.h index ed36709fc3..fbe0afad71 100644 --- a/ompi/mca/btl/mx/btl_mx_frag.h +++ b/ompi/mca/btl/mx/btl_mx_frag.h @@ -69,7 +69,7 @@ extern "C" { OMPI_FREE_LIST_WAIT( &mca_btl_mx_component.mx_send_eager_frags, item, rc); \ frag = (mca_btl_mx_frag_t*) item; \ frag->mx_frag_list = &(mca_btl_mx_component.mx_send_eager_frags); \ - OMPI_PTR_SET_PVAL(frag->segment[0].seg_addr, (void*)(frag+1)); \ + frag->segment[0].seg_addr.pval = (void*)(frag+1); \ } #define MCA_BTL_MX_FRAG_ALLOC_USER(btl, frag, rc) \ diff --git a/ompi/mca/btl/openib/btl_openib.c b/ompi/mca/btl/openib/btl_openib.c index 72def29fe5..3901659074 100644 --- a/ompi/mca/btl/openib/btl_openib.c +++ b/ompi/mca/btl/openib/btl_openib.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -424,7 +422,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_src( frag->sg_entry.addr = (unsigned long)iov.iov_base; frag->segment.seg_len = max_data; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, iov.iov_base); + frag->segment.seg_addr.pval = iov.iov_base; frag->segment.seg_key.key32[0] = (uint32_t)frag->sg_entry.lkey; BTL_VERBOSE(("frag->sg_entry.lkey = %lu .addr = %llu " @@ -455,7 +453,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_src( } iov.iov_len = max_data; - iov.iov_base = (unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + reserve; + iov.iov_base = (unsigned char*)frag->segment.seg_addr.pval + reserve; rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data); if(rc < 0) { MCA_BTL_IB_FRAG_RETURN(openib_btl, frag); @@ -509,15 +507,15 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_dst( } ompi_ddt_type_lb(convertor->pDesc, &lb); - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, - convertor->pBaseBuf + lb + convertor->bConverted); + frag->segment.seg_addr.pval = convertor->pBaseBuf + lb + + convertor->bConverted; if(NULL == registration){ /* we didn't get a memory registration passed in, so we have to * register the region ourselves */ rc = btl->btl_mpool->mpool_register(btl->btl_mpool, - OMPI_PTR_GET_PVAL(frag->segment.seg_addr), *size, 0, ®istration); + frag->segment.seg_addr.pval, *size, 0, ®istration); if(OMPI_SUCCESS != rc || NULL == registration) { MCA_BTL_IB_FRAG_RETURN(openib_btl, frag); return NULL; @@ -529,7 +527,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_prepare_dst( frag->sg_entry.length = *size; frag->sg_entry.lkey = openib_reg->mr->lkey; - frag->sg_entry.addr = (unsigned long) OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + frag->sg_entry.addr = (unsigned long) frag->segment.seg_addr.pval; frag->segment.seg_len = *size; frag->segment.seg_key.key32[0] = openib_reg->mr->rkey; @@ -648,9 +646,9 @@ int mca_btl_openib_put( mca_btl_base_module_t* btl, } else { frag->wr_desc.sr_desc.send_flags = IBV_SEND_SIGNALED; - frag->wr_desc.sr_desc.wr.rdma.remote_addr = (unsigned long) OMPI_PTR_GET_PVAL(frag->base.des_dst->seg_addr); + frag->wr_desc.sr_desc.wr.rdma.remote_addr = (unsigned long) frag->base.des_dst->seg_addr.pval; frag->wr_desc.sr_desc.wr.rdma.rkey = frag->base.des_dst->seg_key.key32[0]; - frag->sg_entry.addr = (unsigned long) OMPI_PTR_GET_PVAL(frag->base.des_src->seg_addr); + frag->sg_entry.addr = (unsigned long) frag->base.des_src->seg_addr.pval; frag->sg_entry.length = frag->base.des_src->seg_len; if(ibv_post_send(endpoint->lcl_qp[BTL_OPENIB_LP_QP], @@ -710,9 +708,9 @@ int mca_btl_openib_get( mca_btl_base_module_t* btl, } else { frag->wr_desc.sr_desc.send_flags = IBV_SEND_SIGNALED; - frag->wr_desc.sr_desc.wr.rdma.remote_addr = (unsigned long) OMPI_PTR_GET_PVAL(frag->base.des_src->seg_addr); + frag->wr_desc.sr_desc.wr.rdma.remote_addr = (unsigned long) frag->base.des_src->seg_addr.pval; frag->wr_desc.sr_desc.wr.rdma.rkey = frag->base.des_src->seg_key.key32[0]; - frag->sg_entry.addr = (unsigned long) OMPI_PTR_GET_PVAL(frag->base.des_dst->seg_addr); + frag->sg_entry.addr = (unsigned long) frag->base.des_dst->seg_addr.pval; frag->sg_entry.length = frag->base.des_dst->seg_len; if(ibv_post_send(endpoint->lcl_qp[BTL_OPENIB_LP_QP], diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c index 5e973b36f3..a8e88120be 100644 --- a/ompi/mca/btl/openib/btl_openib_component.c +++ b/ompi/mca/btl/openib/btl_openib_component.c @@ -10,8 +10,6 @@ * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -204,7 +202,7 @@ static void btl_openib_control(struct mca_btl_base_module_t* btl, /* dont return credits used for control messages */ mca_btl_openib_frag_t* frag = (mca_btl_openib_frag_t*)descriptor; mca_btl_openib_endpoint_t* endpoint = frag->endpoint; - mca_btl_openib_control_header_t *ctl_hdr = OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + mca_btl_openib_control_header_t *ctl_hdr = frag->segment.seg_addr.pval; mca_btl_openib_eager_rdma_header_t *rdma_hdr; mca_btl_openib_rdma_credits_header_t *credits_hdr; @@ -227,13 +225,12 @@ static void btl_openib_control(struct mca_btl_base_module_t* btl, break; case MCA_BTL_OPENIB_CONTROL_RDMA: rdma_hdr = (mca_btl_openib_eager_rdma_header_t*)ctl_hdr; - if (OMPI_PTR_GET_PVAL(endpoint->eager_rdma_remote.base)) { + if (endpoint->eager_rdma_remote.base.pval) { BTL_ERROR(("Got RDMA connect twise!")); return; } endpoint->eager_rdma_remote.rkey = rdma_hdr->rkey; - OMPI_PTR_SET_PVAL(endpoint->eager_rdma_remote.base, - OMPI_PTR_GET_PVAL(rdma_hdr->rdma_start)); + endpoint->eager_rdma_remote.base.pval = rdma_hdr->rdma_start.pval; endpoint->eager_rdma_remote.tokens = mca_btl_openib_component.eager_rdma_num - 1; break; @@ -842,7 +839,7 @@ static int btl_openib_handle_incoming(mca_btl_openib_module_t *openib_btl, OPAL_THREAD_UNLOCK(&endpoint->eager_rdma_local.lock); } - if (!OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base) && + if (!endpoint->eager_rdma_local.base.pval && mca_btl_openib_component.use_eager_rdma && BTL_OPENIB_HP_QP == prio && openib_btl->eager_rdma_buffers_count < @@ -1136,8 +1133,8 @@ static int btl_openib_component_progress(void) OPAL_THREAD_UNLOCK(&endpoint->eager_rdma_local.lock); frag->hdr = (mca_btl_openib_header_t*)(((char*)frag->ftr) - size + sizeof(mca_btl_openib_footer_t)); - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, ((unsigned char* )frag->hdr) + - sizeof(mca_btl_openib_header_t)); + frag->segment.seg_addr.pval = ((unsigned char* )frag->hdr) + + sizeof(mca_btl_openib_header_t); ret = btl_openib_handle_incoming(openib_btl, frag->endpoint, frag, diff --git a/ompi/mca/btl/openib/btl_openib_eager_rdma.h b/ompi/mca/btl/openib/btl_openib_eager_rdma.h index 6e73142b5a..17a60436f8 100644 --- a/ompi/mca/btl/openib/btl_openib_eager_rdma.h +++ b/ompi/mca/btl/openib/btl_openib_eager_rdma.h @@ -1,7 +1,5 @@ /* * Copyright (c) 2006 Voltaire All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -75,7 +73,7 @@ typedef struct mca_btl_openib_eager_rdma_remote_t mca_btl_openib_eager_rdma_remo #define MCA_BTL_OPENIB_GET_LOCAL_RDMA_FRAG(E, I) \ (mca_btl_openib_frag_t*) \ - ((char*)OMPI_PTR_GET_PVAL((E)->eager_rdma_local.base) + \ + ((char*)(E)->eager_rdma_local.base.pval + \ (I) * (E)->endpoint_btl->eager_rdma_frag_size) #define MCA_BTL_OPENIB_RDMA_NEXT_INDEX(I) do { \ diff --git a/ompi/mca/btl/openib/btl_openib_endpoint.c b/ompi/mca/btl/openib/btl_openib_endpoint.c index a677af8057..5ed63808e9 100644 --- a/ompi/mca/btl/openib/btl_openib_endpoint.c +++ b/ompi/mca/btl/openib/btl_openib_endpoint.c @@ -153,19 +153,19 @@ static inline int mca_btl_openib_endpoint_post_send(mca_btl_openib_module_t* ope if(do_rdma) { mca_btl_openib_footer_t* ftr = - (mca_btl_openib_footer_t*)(((char*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr)) + + (mca_btl_openib_footer_t*)(((char*)frag->segment.seg_addr.pval) + frag->segment.seg_len); frag->wr_desc.sr_desc.opcode = IBV_WR_RDMA_WRITE; MCA_BTL_OPENIB_RDMA_FRAG_SET_SIZE(ftr, frag->sg_entry.length); MCA_BTL_OPENIB_RDMA_MAKE_LOCAL(ftr); #if OMPI_ENABLE_DEBUG - ((mca_btl_openib_footer_t*)(((char*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr)) + + ((mca_btl_openib_footer_t*)(((char*)frag->segment.seg_addr.pval) + frag->segment.seg_len))->seq = endpoint->eager_rdma_remote.seq++; #endif frag->wr_desc.sr_desc.wr.rdma.rkey = endpoint->eager_rdma_remote.rkey; frag->wr_desc.sr_desc.wr.rdma.remote_addr = - (uintptr_t)OMPI_PTR_GET_PVAL(endpoint->eager_rdma_remote.base) + + (uintptr_t)endpoint->eager_rdma_remote.base.pval + endpoint->eager_rdma_remote.head * openib_btl->eager_rdma_frag_size + sizeof(mca_btl_openib_frag_t) + @@ -1064,7 +1064,7 @@ void mca_btl_openib_endpoint_send_credits(mca_btl_openib_endpoint_t* endpoint, frag = endpoint->credit_frag[prio]; credits_hdr = - (mca_btl_openib_rdma_credits_header_t*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + (mca_btl_openib_rdma_credits_header_t*)frag->segment.seg_addr.pval; frag->base.des_cbfunc = mca_btl_openib_endpoint_credits; frag->base.des_cbdata = NULL; @@ -1143,11 +1143,10 @@ static int mca_btl_openib_endpoint_send_eager_rdma( frag->base.des_flags |= MCA_BTL_DES_FLAGS_PRIORITY; frag->hdr->tag = MCA_BTL_TAG_BTL; - rdma_hdr = (mca_btl_openib_eager_rdma_header_t*)OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + rdma_hdr = (mca_btl_openib_eager_rdma_header_t*)frag->segment.seg_addr.pval; rdma_hdr->control.type = MCA_BTL_OPENIB_CONTROL_RDMA; rdma_hdr->rkey = endpoint->eager_rdma_local.reg->mr->rkey; - OMPI_PTR_SET_PVAL(rdma_hdr->rdma_start, - OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base)); + rdma_hdr->rdma_start.pval = endpoint->eager_rdma_local.base.pval; frag->segment.seg_len = sizeof(mca_btl_openib_eager_rdma_header_t); if (mca_btl_openib_endpoint_send(endpoint, frag) != OMPI_SUCCESS) { MCA_BTL_IB_FRAG_RETURN(openib_btl, frag); @@ -1168,7 +1167,7 @@ void mca_btl_openib_endpoint_connect_eager_rdma( /* Set local rdma pointer to 1 temporarily so other threads will not try * to enter the function */ - if(!opal_atomic_cmpset_ptr(&OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base), NULL, + if(!opal_atomic_cmpset_ptr(&endpoint->eager_rdma_local.base.pval, NULL, (void*)1)) return; @@ -1197,7 +1196,7 @@ void mca_btl_openib_endpoint_connect_eager_rdma( } /* set local rdma pointer to real value */ - opal_atomic_cmpset_ptr(&OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base), (void*)1, + opal_atomic_cmpset_ptr(&endpoint->eager_rdma_local.base.pval, (void*)1, buf); if(mca_btl_openib_endpoint_send_eager_rdma(endpoint) == 0) { @@ -1214,6 +1213,6 @@ void mca_btl_openib_endpoint_connect_eager_rdma( buf, (mca_mpool_base_registration_t*)endpoint->eager_rdma_local.reg); unlock_rdma_local: /* set local rdma pointer back to zero. Will retry later */ - opal_atomic_cmpset_ptr(&OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base), - OMPI_PTR_GET_PVAL(endpoint->eager_rdma_local.base), NULL); + opal_atomic_cmpset_ptr(&endpoint->eager_rdma_local.base.pval, + endpoint->eager_rdma_local.base.pval, NULL); } diff --git a/ompi/mca/btl/openib/btl_openib_frag.c b/ompi/mca/btl/openib/btl_openib_frag.c index e9619844d0..e0f61d06ed 100644 --- a/ompi/mca/btl/openib/btl_openib_frag.c +++ b/ompi/mca/btl/openib/btl_openib_frag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -28,7 +26,7 @@ static void mca_btl_openib_frag_common_constructor( mca_btl_openib_frag_t* frag) (mca_btl_openib_reg_t*)frag->base.super.user_data; frag->hdr = (mca_btl_openib_header_t*) (frag+1); /* initialize the btl header to start at end of frag */ - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, ((unsigned char* )frag->hdr) + sizeof(mca_btl_openib_header_t)); + frag->segment.seg_addr.pval = ((unsigned char* )frag->hdr) + sizeof(mca_btl_openib_header_t); /* init the segment address to start after the btl header */ if(registration) { @@ -103,7 +101,7 @@ static void mca_btl_openib_recv_frag_eager_constructor(mca_btl_openib_frag_t* fr frag->size = mca_btl_openib_component.eager_limit; frag->type = MCA_BTL_OPENIB_FRAG_EAGER; mca_btl_openib_recv_frag_common_constructor(frag); - frag->ftr = (mca_btl_openib_footer_t*)((char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + frag->ftr = (mca_btl_openib_footer_t*)((char*)frag->segment.seg_addr.pval + frag->size); MCA_BTL_OPENIB_RDMA_MAKE_REMOTE(frag->ftr); } diff --git a/ompi/mca/btl/openib/btl_openib_frag.h b/ompi/mca/btl/openib/btl_openib_frag.h index 1a68e05ce7..fd23c186ea 100644 --- a/ompi/mca/btl/openib/btl_openib_frag.h +++ b/ompi/mca/btl/openib/btl_openib_frag.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -121,14 +119,14 @@ typedef struct mca_btl_openib_eager_rdma_header_t mca_btl_openib_eager_rdma_head do { \ BTL_OPENIB_CONTROL_HEADER_HTON(h.control); \ h.rkey = htonl(h.rkey); \ - OMPI_PTR_T_HTON(h.rdma_start); \ + h.rdma_start.lval = hton64(h.rdma_start.lval); \ } while (0) #define BTL_OPENIB_EAGER_RDMA_HEADER_NTOH(h) \ do { \ BTL_OPENIB_CONTROL_HEADER_NTOH(h.control); \ h.rkey = ntohl(h.rkey); \ - OMPI_PTR_T_NTOH(h.rdma_start); \ + h.rdma_start.lval = ntoh64(h.rdma_start.lval); \ } while (0) diff --git a/ompi/mca/btl/portals/btl_portals.c b/ompi/mca/btl/portals/btl_portals.c index edfdf126e2..a6a37647af 100644 --- a/ompi/mca/btl/portals/btl_portals.c +++ b/ompi/mca/btl/portals/btl_portals.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -327,7 +325,7 @@ mca_btl_portals_prepare_src(struct mca_btl_base_module_t* btl_base, } iov.iov_len = max_data; - iov.iov_base = (unsigned char*) OMPI_PTR_GET_PVAL(frag->segments[0].seg_addr) + reserve; + iov.iov_base = (unsigned char*) frag->segments[0].seg_addr.pval + reserve; ret = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data ); *size = max_data; @@ -361,7 +359,7 @@ mca_btl_portals_prepare_src(struct mca_btl_base_module_t* btl_base, ompi_convertor_pack(convertor, &iov, &iov_count, &max_data ); frag->segments[0].seg_len = max_data; - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, iov.iov_base); + frag->segments[0].seg_addr.pval = iov.iov_base; frag->segments[0].seg_key.key64 = OPAL_THREAD_ADD64(&(mca_btl_portals_module.portals_rdma_key), 1); frag->base.des_src_cnt = 1; @@ -389,7 +387,7 @@ mca_btl_portals_prepare_src(struct mca_btl_base_module_t* btl_base, } /* setup the memory descriptor */ - md.start = OMPI_PTR_GET_PVAL(frag->segments[0].seg_addr); + md.start = frag->segments[0].seg_addr.pval; md.length = frag->segments[0].seg_len; md.threshold = PTL_MD_THRESH_INF; md.max_size = 0; @@ -451,7 +449,7 @@ mca_btl_portals_prepare_dst(struct mca_btl_base_module_t* btl_base, ompi_ddt_type_lb(convertor->pDesc, &lb); frag->segments[0].seg_len = *size; - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, convertor->pBaseBuf + lb + convertor->bConverted); + frag->segments[0].seg_addr.pval = convertor->pBaseBuf + lb + convertor->bConverted; frag->segments[0].seg_key.key64 = OPAL_THREAD_ADD64(&(mca_btl_portals_module.portals_rdma_key), 1); frag->base.des_src = NULL; @@ -482,7 +480,7 @@ mca_btl_portals_prepare_dst(struct mca_btl_base_module_t* btl_base, } /* setup the memory descriptor. */ - md.start = OMPI_PTR_GET_PVAL(frag->segments[0].seg_addr); + md.start = frag->segments[0].seg_addr.pval; md.length = frag->segments[0].seg_len; md.threshold = PTL_MD_THRESH_INF; md.max_size = 0; diff --git a/ompi/mca/btl/portals/btl_portals_component.c b/ompi/mca/btl/portals/btl_portals_component.c index 04d933cba2..3af9bd21a7 100644 --- a/ompi/mca/btl/portals/btl_portals_component.c +++ b/ompi/mca/btl/portals/btl_portals_component.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -436,8 +434,7 @@ mca_btl_portals_component_progress(void) /* if we ever make this thread hot, need to do something with the receive fragments */ frag = &mca_btl_portals_module.portals_recv_frag; - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, - (((char*) ev.md.start) + ev.offset)); + frag->segments[0].seg_addr.pval = (((char*) ev.md.start) + ev.offset); frag->segments[0].seg_len = ev.mlength; OPAL_OUTPUT_VERBOSE((90, mca_btl_portals_component.portals_output, diff --git a/ompi/mca/btl/portals/btl_portals_frag.c b/ompi/mca/btl/portals/btl_portals_frag.c index 7f9b71cc3a..3abf931bb3 100644 --- a/ompi/mca/btl/portals/btl_portals_frag.c +++ b/ompi/mca/btl/portals/btl_portals_frag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -32,7 +30,7 @@ mca_btl_portals_frag_common_send_constructor(mca_btl_portals_frag_t* frag) frag->base.des_src = frag->segments; frag->base.des_src_cnt = 2; - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, frag + 1); + frag->segments[0].seg_addr.pval = frag + 1; frag->segments[0].seg_len = frag->size; frag->segments[0].seg_key.key64 = 0; diff --git a/ompi/mca/btl/portals/btl_portals_send.c b/ompi/mca/btl/portals/btl_portals_send.c index e6f39b2ae2..4d1807ab46 100644 --- a/ompi/mca/btl/portals/btl_portals_send.c +++ b/ompi/mca/btl/portals/btl_portals_send.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -60,7 +58,7 @@ mca_btl_portals_send(struct mca_btl_base_module_t* btl_base, if (frag->md_h == PTL_INVALID_HANDLE) { /* setup the send - always describe entire fragment */ - mca_btl_portals_module.md_send.start = OMPI_PTR_GET_PVAL(frag->segments[0].seg_addr); + mca_btl_portals_module.md_send.start = frag->segments[0].seg_addr.pval; mca_btl_portals_module.md_send.length = 0 == frag->size ? frag->segments[0].seg_len : frag->size; mca_btl_portals_module.md_send.options = @@ -83,7 +81,7 @@ mca_btl_portals_send(struct mca_btl_base_module_t* btl_base, "fragment info:\n" "\tstart: 0x%x\n" "\tlen: %d", - OMPI_PTR_GET_PVAL(frag->segments[0].seg_addr), + frag->segments[0].seg_addr.pval, frag->segments[0].seg_len)); ret = PtlPutRegion(frag->md_h, /* memory descriptor */ diff --git a/ompi/mca/btl/self/btl_self.c b/ompi/mca/btl/self/btl_self.c index 22015e7d59..b56222d883 100644 --- a/ompi/mca/btl/self/btl_self.c +++ b/ompi/mca/btl/self/btl_self.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -237,7 +235,7 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_src( return NULL; } frag->base.des_flags = 0; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, frag+1); + frag->segment.seg_addr.pval = frag+1; frag->segment.seg_len = reserve + max_data; *size = max_data; } else { @@ -254,7 +252,7 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_src( MCA_BTL_SELF_FRAG_RETURN_RDMA(frag); return NULL; } - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, iov.iov_base); + frag->segment.seg_addr.pval = iov.iov_base; frag->segment.seg_len = max_data; frag->base.des_flags = 0; *size = max_data; @@ -288,8 +286,7 @@ struct mca_btl_base_descriptor_t* mca_btl_self_prepare_dst( /* setup descriptor to point directly to user buffer */ ompi_ddt_type_lb( convertor->pDesc, &lb ); - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, - (unsigned char*)convertor->pBaseBuf + lb + convertor->bConverted); + frag->segment.seg_addr.pval = (unsigned char*)convertor->pBaseBuf + lb + convertor->bConverted; frag->segment.seg_len = reserve + max_data; frag->segment.seg_key.key64 = (uint64_t)(intptr_t)convertor; frag->base.des_dst = &frag->segment; @@ -340,9 +337,9 @@ int mca_btl_self_rdma( struct mca_btl_base_module_t* btl, mca_btl_base_segment_t* dst = des->des_dst; size_t src_cnt = des->des_src_cnt; size_t dst_cnt = des->des_dst_cnt; - unsigned char* src_addr = (unsigned char*) OMPI_PTR_GET_PVAL(src->seg_addr); + unsigned char* src_addr = (unsigned char*)src->seg_addr.pval; size_t src_len = src->seg_len; - unsigned char* dst_addr = (unsigned char*) OMPI_PTR_GET_PVAL(dst->seg_addr); + unsigned char* dst_addr = (unsigned char*)dst->seg_addr.pval; size_t dst_len = dst->seg_len; while(src_len && dst_len) { @@ -353,7 +350,7 @@ int mca_btl_self_rdma( struct mca_btl_base_module_t* btl, /* advance src */ if(--src_cnt != 0) { src++; - src_addr = (unsigned char*) OMPI_PTR_GET_PVAL(src->seg_addr); + src_addr = (unsigned char*)src->seg_addr.pval; src_len = src->seg_len; } else { src_len = 0; @@ -362,7 +359,7 @@ int mca_btl_self_rdma( struct mca_btl_base_module_t* btl, /* advance dst */ if(--dst_cnt != 0) { dst++; - dst_addr = (unsigned char*) OMPI_PTR_GET_PVAL(dst->seg_addr); + dst_addr = (unsigned char*)dst->seg_addr.pval; dst_len = dst->seg_len; } else { dst_len = 0; @@ -377,7 +374,7 @@ int mca_btl_self_rdma( struct mca_btl_base_module_t* btl, if(src_len == 0) { if(--src_cnt != 0) { src++; - src_addr = (unsigned char*) OMPI_PTR_GET_PVAL(src->seg_addr); + src_addr = (unsigned char*)src->seg_addr.pval; src_len = src->seg_len; } } else { @@ -389,7 +386,7 @@ int mca_btl_self_rdma( struct mca_btl_base_module_t* btl, if(dst_len == 0) { if(--dst_cnt != 0) { dst++; - dst_addr = (unsigned char*) OMPI_PTR_GET_PVAL(src->seg_addr); + dst_addr = (unsigned char*)src->seg_addr.pval; dst_len = src->seg_len; } } else { diff --git a/ompi/mca/btl/self/btl_self_frag.c b/ompi/mca/btl/self/btl_self_frag.c index b337cd2419..55ae81e7cc 100644 --- a/ompi/mca/btl/self/btl_self_frag.c +++ b/ompi/mca/btl/self/btl_self_frag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,7 +21,7 @@ static inline void mca_btl_self_frag_constructor(mca_btl_self_frag_t* frag) { - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, frag+1); + frag->segment.seg_addr.pval = frag+1; frag->segment.seg_len = (uint32_t)frag->size; frag->base.des_src = &frag->segment; frag->base.des_src_cnt = 1; @@ -47,7 +45,7 @@ static void mca_btl_self_frag_send_constructor(mca_btl_self_frag_t* frag) static void mca_btl_self_frag_rdma_constructor(mca_btl_self_frag_t* frag) { frag->size = 0; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, frag+1); + frag->segment.seg_addr.pval = frag+1; frag->segment.seg_len = (uint32_t)frag->size; frag->base.des_src = NULL; frag->base.des_src_cnt = 0; diff --git a/ompi/mca/btl/self/btl_self_frag.h b/ompi/mca/btl/self/btl_self_frag.h index e0617a042b..7d807aec50 100644 --- a/ompi/mca/btl/self/btl_self_frag.h +++ b/ompi/mca/btl/self/btl_self_frag.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -57,7 +55,7 @@ OBJ_CLASS_DECLARATION(mca_btl_self_frag_rdma_t); { \ OMPI_FREE_LIST_RETURN(&mca_btl_self_component.self_frags_eager, \ (ompi_free_list_item_t*)(frag)); \ - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, frag+1); \ + frag->segment.seg_addr.pval = frag+1; \ } #define MCA_BTL_SELF_FRAG_ALLOC_SEND(frag, rc) \ @@ -71,7 +69,7 @@ OBJ_CLASS_DECLARATION(mca_btl_self_frag_rdma_t); { \ OMPI_FREE_LIST_RETURN( &mca_btl_self_component.self_frags_send, \ (ompi_free_list_item_t*)(frag)); \ - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, frag+1); \ + frag->segment.seg_addr.pval = frag+1; \ } #define MCA_BTL_SELF_FRAG_ALLOC_RDMA(frag, rc) \ @@ -85,7 +83,7 @@ OBJ_CLASS_DECLARATION(mca_btl_self_frag_rdma_t); { \ OMPI_FREE_LIST_RETURN(&mca_btl_self_component.self_frags_rdma, \ (ompi_free_list_item_t*)(frag)); \ - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, frag+1); \ + frag->segment.seg_addr.pval = frag+1; \ } #endif diff --git a/ompi/mca/btl/sm/btl_sm_component.c b/ompi/mca/btl/sm/btl_sm_component.c index fddbe14291..3232e72d79 100644 --- a/ompi/mca/btl/sm/btl_sm_component.c +++ b/ompi/mca/btl/sm/btl_sm_component.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -477,9 +475,9 @@ int mca_btl_sm_component_progress(void) /* completion callback */ frag->base.des_src = ( mca_btl_base_segment_t* )((ptrdiff_t)frag->base.des_dst + mca_btl_sm_component.sm_offset[peer_smp_rank]); - OMPI_PTR_SET_PVAL(frag->base.des_src->seg_addr, - (void*) ((ptrdiff_t) OMPI_PTR_GET_PVAL(frag->base.des_src->seg_addr) + - mca_btl_sm_component.sm_offset[peer_smp_rank])); + frag->base.des_src->seg_addr.pval = (void*) + ((ptrdiff_t)frag->base.des_src->seg_addr.pval + + mca_btl_sm_component.sm_offset[peer_smp_rank]); frag->base.des_dst = frag->base.des_src; frag->base.des_cbfunc(&mca_btl_sm[1].super, frag->endpoint, &frag->base, frag->rc); break; @@ -490,9 +488,9 @@ int mca_btl_sm_component_progress(void) mca_btl_sm_recv_reg_t* reg = mca_btl_sm[1].sm_reg + frag->tag; frag->base.des_dst = (mca_btl_base_segment_t*) ((ptrdiff_t)frag->base.des_src + mca_btl_sm_component.sm_offset[peer_smp_rank]); - OMPI_PTR_SET_PVAL(frag->base.des_dst->seg_addr, - (void*) ((ptrdiff_t) OMPI_PTR_GET_PVAL(frag->base.des_dst->seg_addr) + - mca_btl_sm_component.sm_offset[peer_smp_rank])); + frag->base.des_dst->seg_addr.pval = (void*) + ((ptrdiff_t)frag->base.des_dst->seg_addr.pval + + mca_btl_sm_component.sm_offset[peer_smp_rank]); frag->base.des_src = frag->base.des_dst; reg->cbfunc(&mca_btl_sm[1].super,frag->tag,&frag->base,reg->cbdata); frag->type = MCA_BTL_SM_FRAG_ACK; diff --git a/ompi/mca/btl/sm/btl_sm_frag.c b/ompi/mca/btl/sm/btl_sm_frag.c index b896a3c8e2..1097213ed5 100644 --- a/ompi/mca/btl/sm/btl_sm_frag.c +++ b/ompi/mca/btl/sm/btl_sm_frag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -23,7 +21,7 @@ static inline void mca_btl_sm_frag_constructor(mca_btl_sm_frag_t* frag) { - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, frag+1); + frag->segment.seg_addr.pval = frag+1; frag->segment.seg_len = frag->size; frag->base.des_src = &frag->segment; frag->base.des_src_cnt = 1; diff --git a/ompi/mca/btl/tcp/btl_tcp.c b/ompi/mca/btl/tcp/btl_tcp.c index d787265479..535de66e67 100644 --- a/ompi/mca/btl/tcp/btl_tcp.c +++ b/ompi/mca/btl/tcp/btl_tcp.c @@ -199,7 +199,7 @@ mca_btl_base_descriptor_t* mca_btl_tcp_alloc( return NULL; } - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, frag+1); + frag->segments[0].seg_addr.pval = frag+1; frag->base.des_src = frag->segments; frag->base.des_src_cnt = 1; @@ -267,7 +267,7 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_src( if(max_data == 0) { - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, (frag + 1)); + frag->segments[0].seg_addr.pval = (frag + 1); frag->segments[0].seg_len = reserve; frag->base.des_src_cnt = 1; @@ -285,7 +285,7 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_src( return NULL; } - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, (frag + 1)); + frag->segments[0].seg_addr.pval = (frag + 1); frag->segments[0].seg_len = max_data + reserve; frag->base.des_src_cnt = 1; @@ -300,9 +300,9 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_src( return NULL; } - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, frag+1); + frag->segments[0].seg_addr.pval = frag+1; frag->segments[0].seg_len = reserve; - OMPI_PTR_SET_PVAL(frag->segments[1].seg_addr, iov.iov_base); + frag->segments[1].seg_addr.pval = iov.iov_base; frag->segments[1].seg_len = max_data; frag->base.des_src_cnt = 2; } @@ -349,8 +349,7 @@ mca_btl_base_descriptor_t* mca_btl_tcp_prepare_dst( ompi_ddt_type_lb(convertor->pDesc, &lb); frag->segments->seg_len = *size; - OMPI_PTR_SET_PVAL(frag->segments->seg_addr, - convertor->pBaseBuf + lb + convertor->bConverted); + frag->segments->seg_addr.pval = convertor->pBaseBuf + lb + convertor->bConverted; frag->base.des_src = NULL; frag->base.des_src_cnt = 0; @@ -392,7 +391,7 @@ int mca_btl_tcp_send( for(i=0; ibase.des_src_cnt; i++) { frag->hdr.size += frag->segments[i].seg_len; frag->iov[i+1].iov_len = frag->segments[i].seg_len; - frag->iov[i+1].iov_base = (IOVBASE_TYPE*) OMPI_PTR_GET_PVAL(frag->segments[i].seg_addr); + frag->iov[i+1].iov_base = (IOVBASE_TYPE*)frag->segments[i].seg_addr.pval; frag->iov_cnt++; } frag->hdr.base.tag = tag; @@ -434,7 +433,7 @@ int mca_btl_tcp_put( for(i=0; ibase.des_src_cnt; i++) { frag->hdr.size += frag->segments[i].seg_len; frag->iov[i+2].iov_len = frag->segments[i].seg_len; - frag->iov[i+2].iov_base = (IOVBASE_TYPE*) OMPI_PTR_GET_PVAL(frag->segments[i].seg_addr); + frag->iov[i+2].iov_base = (IOVBASE_TYPE*)frag->segments[i].seg_addr.pval; frag->iov_cnt++; } frag->hdr.base.tag = MCA_BTL_TAG_BTL; diff --git a/ompi/mca/btl/tcp/btl_tcp_frag.c b/ompi/mca/btl/tcp/btl_tcp_frag.c index 0621c7a8f4..bc38a384a0 100644 --- a/ompi/mca/btl/tcp/btl_tcp_frag.c +++ b/ompi/mca/btl/tcp/btl_tcp_frag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -239,7 +237,7 @@ bool mca_btl_tcp_frag_recv(mca_btl_tcp_frag_t* frag, int sd) if(frag->iov_idx == 1 && frag->hdr.size) { frag->iov[1].iov_base = (IOVBASE_TYPE*)(frag+1); frag->iov[1].iov_len = frag->hdr.size; - OMPI_PTR_SET_PVAL(frag->segments[0].seg_addr, frag+1); + frag->segments[0].seg_addr.pval = frag+1; frag->segments[0].seg_len = frag->hdr.size; frag->iov_cnt++; goto repeat; @@ -253,7 +251,7 @@ bool mca_btl_tcp_frag_recv(mca_btl_tcp_frag_t* frag, int sd) goto repeat; } else if (frag->iov_idx == 2) { for(i=0; ihdr.count; i++) { - frag->iov[i+2].iov_base = (IOVBASE_TYPE*) OMPI_PTR_GET_PVAL(frag->segments[i].seg_addr); + frag->iov[i+2].iov_base = (IOVBASE_TYPE*)frag->segments[i].seg_addr.pval; frag->iov[i+2].iov_len = frag->segments[i].seg_len; frag->iov_cnt++; } diff --git a/ompi/mca/btl/tcp/btl_tcp_frag.h b/ompi/mca/btl/tcp/btl_tcp_frag.h index 725d3b04e4..28647b869c 100644 --- a/ompi/mca/btl/tcp/btl_tcp_frag.h +++ b/ompi/mca/btl/tcp/btl_tcp_frag.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow diff --git a/ompi/mca/btl/template/btl_template.c b/ompi/mca/btl/template/btl_template.c index e1ef9bcf4b..b1a38b6050 100644 --- a/ompi/mca/btl/template/btl_template.c +++ b/ompi/mca/btl/template/btl_template.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -247,7 +245,7 @@ mca_btl_base_descriptor_t* mca_btl_template_prepare_src( } iov.iov_len = max_data; - iov.iov_base = (unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + reserve; + iov.iov_base = (unsigned char*) frag->segment.seg_addr.pval + reserve; rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data ); *size = max_data; @@ -272,7 +270,7 @@ mca_btl_base_descriptor_t* mca_btl_template_prepare_src( max_data = frag->size - reserve; } iov.iov_len = max_data; - iov.iov_base = (unsigned char*) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + reserve; + iov.iov_base = (unsigned char*) frag->segment.seg_addr.pval + reserve; rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data ); *size = max_data; @@ -324,7 +322,7 @@ mca_btl_base_descriptor_t* mca_btl_template_prepare_dst( } frag->segment.seg_len = *size; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, convertor->pBaseBuf + convertor->bConverted); + frag->segment.seg_addr.pval = convertor->pBaseBuf + convertor->bConverted; frag->base.des_src = NULL; frag->base.des_src_cnt = 0; diff --git a/ompi/mca/btl/udapl/btl_udapl.c b/ompi/mca/btl/udapl/btl_udapl.c index 5a89cb8fcf..a95c97142e 100644 --- a/ompi/mca/btl/udapl/btl_udapl.c +++ b/ompi/mca/btl/udapl/btl_udapl.c @@ -12,8 +12,6 @@ * Copyright (c) 2006 Sandia National Laboratories. All rights * reserved. * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * * $COPYRIGHT$ * @@ -396,9 +394,9 @@ mca_btl_base_descriptor_t* mca_btl_udapl_alloc( /* Set up the LMR triplet from the frag segment */ /* Note that this triplet defines a sub-region of a registered LMR */ - frag->triplet.virtual_address = (DAT_VADDR)OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + frag->triplet.virtual_address = (DAT_VADDR)frag->segment.seg_addr.pval; frag->ftr = (mca_btl_udapl_footer_t *) - ((char *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + frag->segment.seg_len); + ((char *)frag->segment.seg_addr.pval + frag->segment.seg_len); frag->triplet.segment_length = frag->segment.seg_len + sizeof(mca_btl_udapl_footer_t); assert(frag->triplet.lmr_context == frag->registration->lmr_triplet.lmr_context); @@ -482,7 +480,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src( &iov_count, &max_data ); frag->segment.seg_len = max_data; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, iov.iov_base); + frag->segment.seg_addr.pval = iov.iov_base; frag->triplet.segment_length = max_data; frag->triplet.virtual_address = (DAT_VADDR)iov.iov_base; @@ -538,7 +536,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src( ((mca_mpool_udapl_registration_t*)registration)->lmr_triplet.lmr_context; /* TODO - should our base addr be frag->ftr? */ frag->segment.seg_len = max_data; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, iov.iov_base); + frag->segment.seg_addr.pval = iov.iov_base; frag->triplet.segment_length = max_data; frag->triplet.virtual_address = (DAT_VADDR)iov.iov_base; } @@ -556,7 +554,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src( } iov.iov_len = max_data; - iov.iov_base = (char *) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + reserve; + iov.iov_base = (char *) frag->segment.seg_addr.pval + reserve; rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data ); @@ -582,7 +580,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src( } iov.iov_len = max_data; - iov.iov_base = (char *) OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + reserve; + iov.iov_base = (char *) frag->segment.seg_addr.pval + reserve; rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data ); @@ -598,9 +596,9 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_src( frag->segment.seg_len = max_data + reserve; frag->triplet.segment_length = max_data + reserve + sizeof(mca_btl_udapl_footer_t); - frag->triplet.virtual_address = (DAT_VADDR)OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + frag->triplet.virtual_address = (DAT_VADDR)frag->segment.seg_addr.pval; frag->ftr = (mca_btl_udapl_footer_t *) - ((char *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + frag->segment.seg_len); + ((char *)frag->segment.seg_addr.pval + frag->segment.seg_len); /* initialize base descriptor */ frag->base.des_src = &frag->segment; @@ -648,7 +646,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_dst( ompi_ddt_type_lb(convertor->pDesc, &lb); frag->segment.seg_len = *size; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, convertor->pBaseBuf + lb + convertor->bConverted); + frag->segment.seg_addr.pval = convertor->pBaseBuf + lb + convertor->bConverted; frag->base.des_src = NULL; frag->base.des_src_cnt = 0; @@ -669,7 +667,7 @@ mca_btl_base_descriptor_t* mca_btl_udapl_prepare_dst( rc = mpool->mpool_register( mpool, - OMPI_PTR_GET_PVAL(frag->segment.seg_addr), + frag->segment.seg_addr.pval, frag->segment.seg_len, 0, ®istration); @@ -705,7 +703,7 @@ int mca_btl_udapl_send( frag->btl = (mca_btl_udapl_module_t*)btl; frag->endpoint = endpoint; frag->ftr = (mca_btl_udapl_footer_t *) - ((char *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + frag->segment.seg_len); + ((char *)frag->segment.seg_addr.pval + frag->segment.seg_len); frag->ftr->tag = tag; frag->type = MCA_BTL_UDAPL_SEND; diff --git a/ompi/mca/btl/udapl/btl_udapl_component.c b/ompi/mca/btl/udapl/btl_udapl_component.c index 42f8e4d539..18e6684a6e 100644 --- a/ompi/mca/btl/udapl/btl_udapl_component.c +++ b/ompi/mca/btl/udapl/btl_udapl_component.c @@ -12,8 +12,6 @@ * Copyright (c) 2006 Sandia National Laboratories. All rights * reserved. * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * * $COPYRIGHT$ * @@ -415,9 +413,9 @@ static inline int mca_btl_udapl_sendrecv(mca_btl_udapl_module_t* btl, sizeof(int32_t)); cookie.as_ptr = frag; - memcpy(OMPI_PTR_GET_PVAL(frag->segment.seg_addr), + memcpy(frag->segment.seg_addr.pval, &btl->udapl_addr, sizeof(mca_btl_udapl_addr_t)); - memcpy((char *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + sizeof(mca_btl_udapl_addr_t), + memcpy((char *)frag->segment.seg_addr.pval + sizeof(mca_btl_udapl_addr_t), &connection_seq, sizeof(int32_t)); connection_seq++; @@ -554,7 +552,7 @@ int mca_btl_udapl_component_progress() assert(frag->base.des_src_cnt == 0); assert(frag->type == MCA_BTL_UDAPL_RECV); assert(frag->triplet.virtual_address == - (DAT_VADDR)OMPI_PTR_GET_PVAL(frag->segment.seg_addr)); + (DAT_VADDR)frag->segment.seg_addr.pval); assert(frag->triplet.segment_length == frag->size); assert(frag->btl == btl); @@ -562,7 +560,7 @@ int mca_btl_udapl_component_progress() frag->segment.seg_len = dto->transfered_length - sizeof(mca_btl_udapl_footer_t); frag->ftr = (mca_btl_udapl_footer_t *) - ((char *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + + ((char *)frag->segment.seg_addr.pval + frag->segment.seg_len); reg = &btl->udapl_reg[frag->ftr->tag]; OPAL_THREAD_UNLOCK(&mca_btl_udapl_component.udapl_lock); @@ -571,7 +569,7 @@ int mca_btl_udapl_component_progress() OPAL_THREAD_LOCK(&mca_btl_udapl_component.udapl_lock); /* Repost the frag */ - frag->ftr = OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + frag->ftr = frag->segment.seg_addr.pval; frag->segment.seg_len = frag->size - sizeof(mca_btl_udapl_footer_t); frag->base.des_flags = 0; @@ -593,8 +591,8 @@ int mca_btl_udapl_component_progress() } case MCA_BTL_UDAPL_CONN_RECV: mca_btl_udapl_endpoint_finish_connect(btl, - OMPI_PTR_GET_PVAL(frag->segment.seg_addr), - (int32_t *)((char *)OMPI_PTR_GET_PVAL(frag->segment.seg_addr) + + frag->segment.seg_addr.pval, + (int32_t *)((char *)frag->segment.seg_addr.pval + sizeof(mca_btl_udapl_addr_t)), event.event_data.connect_event_data.ep_handle); /* No break - fall through to free */ diff --git a/ompi/mca/btl/udapl/btl_udapl_endpoint.c b/ompi/mca/btl/udapl/btl_udapl_endpoint.c index ffab3eef23..70bb0bd162 100644 --- a/ompi/mca/btl/udapl/btl_udapl_endpoint.c +++ b/ompi/mca/btl/udapl/btl_udapl_endpoint.c @@ -12,8 +12,6 @@ * Copyright (c) 2006 Sandia National Laboratories. All rights * reserved. * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * * $COPYRIGHT$ * @@ -424,7 +422,7 @@ static int mca_btl_udapl_endpoint_finish_max(mca_btl_udapl_endpoint_t* endpoint) cookie.as_ptr = frag; assert(frag->triplet.virtual_address == - (DAT_VADDR)OMPI_PTR_GET_PVAL(frag->segment.seg_addr)); + (DAT_VADDR)frag->segment.seg_addr.pval); assert(frag->triplet.segment_length == frag->segment.seg_len + sizeof(mca_btl_udapl_footer_t)); assert(frag->size == @@ -500,7 +498,7 @@ static int mca_btl_udapl_endpoint_post_recv(mca_btl_udapl_endpoint_t* endpoint, assert(size == frag->size); /* Set up the LMR triplet from the frag segment */ /* Note that this triplet defines a sub-region of a registered LMR */ - frag->triplet.virtual_address = (DAT_VADDR)OMPI_PTR_GET_PVAL(frag->segment.seg_addr); + frag->triplet.virtual_address = (DAT_VADDR)frag->segment.seg_addr.pval; frag->triplet.segment_length = frag->size; frag->btl = endpoint->endpoint_btl; diff --git a/ompi/mca/btl/udapl/btl_udapl_frag.c b/ompi/mca/btl/udapl/btl_udapl_frag.c index 7a57e92aed..89c2ef033c 100644 --- a/ompi/mca/btl/udapl/btl_udapl_frag.c +++ b/ompi/mca/btl/udapl/btl_udapl_frag.c @@ -12,8 +12,6 @@ * Copyright (c) 2006 Sandia National Laboratories. All rights * reserved. * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -39,7 +37,7 @@ static void mca_btl_udapl_frag_common_constructor(mca_btl_udapl_frag_t* frag) #endif frag->registration = reg; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, (unsigned char*)(frag + 1)); + frag->segment.seg_addr.pval = (unsigned char*)(frag + 1); frag->ftr = NULL; /* Don't understand why yet, but there are cases where reg is NULL - @@ -69,7 +67,7 @@ static void mca_btl_udapl_frag_user_constructor(mca_btl_udapl_frag_t* frag) { mca_btl_udapl_frag_common_constructor(frag); frag->segment.seg_len = 0; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, NULL); + frag->segment.seg_addr.pval = NULL; frag->ftr = NULL; frag->size = 0; } @@ -81,7 +79,7 @@ static void mca_btl_udapl_frag_common_destructor(mca_btl_udapl_frag_t* frag) frag->size = 0; frag->registration = NULL; frag->segment.seg_len = 0; - OMPI_PTR_SET_PVAL(frag->segment.seg_addr, NULL); + frag->segment.seg_addr.pval = NULL; frag->base.des_src = NULL; frag->base.des_src_cnt = 0; diff --git a/ompi/mca/mtl/portals/mtl_portals_send.c b/ompi/mca/mtl/portals/mtl_portals_send.c index dde7df4490..703ec0ad43 100644 --- a/ompi/mca/mtl/portals/mtl_portals_send.c +++ b/ompi/mca/mtl/portals/mtl_portals_send.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -193,11 +191,11 @@ ompi_mtl_portals_isend(struct mca_mtl_base_module_t* mtl, md.user_ptr = ptl_request; md.eq_handle = ompi_mtl_portals.ptl_eq_h; - OMPI_PTR_SET_PVAL(ptr, ptl_request); + ptr.pval = ptl_request; ret = PtlMEAttach(ompi_mtl_portals.ptl_ni_h, OMPI_MTL_PORTALS_READ_TABLE_ID, endpoint->ptl_proc, - (ptl_match_bits_t) OMPI_PTR_GET_LVAL(ptr), + (ptl_match_bits_t) ptr.lval, 0, PTL_UNLINK, PTL_INS_AFTER, @@ -225,7 +223,7 @@ ompi_mtl_portals_isend(struct mca_mtl_base_module_t* mtl, 0, match_bits, 0, - (ptl_hdr_data_t) OMPI_PTR_GET_LVAL(ptr)); + (ptl_hdr_data_t) ptr.lval); if (OMPI_SUCCESS != ret) { PtlMDUnlink(md_h); if (ptl_request->free_after) free(md.start); @@ -247,11 +245,11 @@ ompi_mtl_portals_isend(struct mca_mtl_base_module_t* mtl, md.user_ptr = ptl_request; md.eq_handle = ompi_mtl_portals.ptl_eq_h; - OMPI_PTR_SET_PVAL(ptr, ptl_request); + ptr.pval = ptl_request; ret = PtlMEAttach(ompi_mtl_portals.ptl_ni_h, OMPI_MTL_PORTALS_ACK_TABLE_ID, endpoint->ptl_proc, - (ptl_match_bits_t) OMPI_PTR_GET_LVAL(ptr), + (ptl_match_bits_t) ptr.lval, 0, PTL_UNLINK, PTL_INS_AFTER, @@ -279,7 +277,7 @@ ompi_mtl_portals_isend(struct mca_mtl_base_module_t* mtl, 0, match_bits, 0, - (ptl_hdr_data_t) OMPI_PTR_GET_LVAL(ptr)); + (ptl_hdr_data_t) ptr.lval); if (OMPI_SUCCESS != ret) { PtlMDUnlink(md_h); if (ptl_request->free_after) free(md.start); diff --git a/ompi/mca/osc/pt2pt/osc_pt2pt_component.c b/ompi/mca/osc/pt2pt/osc_pt2pt_component.c index 315fcc5abf..15b10ba9eb 100644 --- a/ompi/mca/osc/pt2pt/osc_pt2pt_component.c +++ b/ompi/mca/osc/pt2pt/osc_pt2pt_component.c @@ -7,8 +7,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -605,7 +603,7 @@ ompi_osc_pt2pt_component_fragment_cb(struct ompi_osc_pt2pt_buffer_t *pt2pt_buffe #endif /* get original sendreq pointer */ - sendreq = (ompi_osc_pt2pt_sendreq_t*) OMPI_PTR_GET_PVAL(header->hdr_origin_sendreq); + sendreq = (ompi_osc_pt2pt_sendreq_t*) header->hdr_origin_sendreq.pval; module = sendreq->req_module; /* receive data */ diff --git a/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c b/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c index 60254f7f34..9525ebc2d7 100644 --- a/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c +++ b/ompi/mca/osc/pt2pt/osc_pt2pt_data_move.c @@ -7,8 +7,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -191,8 +189,7 @@ ompi_osc_pt2pt_sendreq_send(ompi_osc_pt2pt_module_t *module, header->hdr_base.hdr_flags = 0; header->hdr_windx = sendreq->req_module->p2p_comm->c_contextid; header->hdr_origin = sendreq->req_module->p2p_comm->c_my_rank; - OMPI_PTR_SET_PVAL(header->hdr_origin_sendreq, - (void*) sendreq); + header->hdr_origin_sendreq.pval = (void*) sendreq; header->hdr_origin_tag = 0; header->hdr_target_disp = sendreq->req_target_disp; header->hdr_target_count = sendreq->req_target_count; diff --git a/ompi/mca/osc/rdma/osc_rdma_component.c b/ompi/mca/osc/rdma/osc_rdma_component.c index b456b0931d..bc77d22127 100644 --- a/ompi/mca/osc/rdma/osc_rdma_component.c +++ b/ompi/mca/osc/rdma/osc_rdma_component.c @@ -7,9 +7,7 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. -* $COPYRIGHT$ + * $COPYRIGHT$ * * Additional copyrights may follow * @@ -448,14 +446,14 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, sizeof(ompi_osc_rdma_base_header_t)); /* handle message */ - switch (((ompi_osc_rdma_base_header_t*) OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr))->hdr_type) { + switch (((ompi_osc_rdma_base_header_t*) descriptor->des_dst[0].seg_addr.pval)->hdr_type) { case OMPI_OSC_RDMA_HDR_PUT: { ompi_osc_rdma_send_header_t *header; /* get our header and payload */ header = (ompi_osc_rdma_send_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; payload = (void*) (header + 1); #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT @@ -488,7 +486,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, /* get our header and payload */ header = (ompi_osc_rdma_send_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; payload = (void*) (header + 1); #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT @@ -525,7 +523,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, /* get our header and payload */ header = (ompi_osc_rdma_send_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; payload = (void*) (header + 1); #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT @@ -576,7 +574,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, /* get our header and payload */ header = (ompi_osc_rdma_reply_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; payload = (void*) (header + 1); #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT @@ -586,8 +584,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, #endif /* get original sendreq pointer */ - sendreq = (ompi_osc_rdma_sendreq_t*) - OMPI_PTR_GET_PVAL(header->hdr_origin_sendreq); + sendreq = (ompi_osc_rdma_sendreq_t*) header->hdr_origin_sendreq.pval; module = sendreq->req_module; /* receive data */ @@ -598,7 +595,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, { ompi_osc_rdma_control_header_t *header = (ompi_osc_rdma_control_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT if (header->hdr_base.hdr_flags & OMPI_OSC_RDMA_HDR_FLAG_NBO) { @@ -617,7 +614,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, { ompi_osc_rdma_control_header_t *header = (ompi_osc_rdma_control_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT if (header->hdr_base.hdr_flags & OMPI_OSC_RDMA_HDR_FLAG_NBO) { @@ -640,7 +637,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, { ompi_osc_rdma_control_header_t *header = (ompi_osc_rdma_control_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT if (header->hdr_base.hdr_flags & OMPI_OSC_RDMA_HDR_FLAG_NBO) { @@ -665,7 +662,7 @@ ompi_osc_rdma_component_fragment_cb(struct mca_btl_base_module_t *btl, { ompi_osc_rdma_control_header_t *header = (ompi_osc_rdma_control_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_dst[0].seg_addr); + descriptor->des_dst[0].seg_addr.pval; #if !defined(WORDS_BIGENDIAN) && OMPI_ENABLE_HETEROGENEOUS_SUPPORT if (header->hdr_base.hdr_flags & OMPI_OSC_RDMA_HDR_FLAG_NBO) { diff --git a/ompi/mca/osc/rdma/osc_rdma_data_move.c b/ompi/mca/osc/rdma/osc_rdma_data_move.c index a2a34eee50..f70e5fd45d 100644 --- a/ompi/mca/osc/rdma/osc_rdma_data_move.c +++ b/ompi/mca/osc/rdma/osc_rdma_data_move.c @@ -7,8 +7,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -92,8 +90,8 @@ ompi_osc_rdma_sendreq_send_cb(struct mca_btl_base_module_t* btl, { ompi_osc_rdma_sendreq_t *sendreq = (ompi_osc_rdma_sendreq_t*) descriptor->des_cbdata; - ompi_osc_rdma_send_header_t *header = (ompi_osc_rdma_send_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr); + ompi_osc_rdma_send_header_t *header = + (ompi_osc_rdma_send_header_t*) descriptor->des_src[0].seg_addr.pval; opal_list_item_t *item; ompi_osc_rdma_module_t *module = sendreq->req_module; @@ -223,13 +221,12 @@ ompi_osc_rdma_sendreq_send(ompi_osc_rdma_module_t *module, descriptor->des_flags = MCA_BTL_DES_FLAGS_PRIORITY; /* pack header */ - header = (ompi_osc_rdma_send_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr); + header = (ompi_osc_rdma_send_header_t*) descriptor->des_src[0].seg_addr.pval; written_data += sizeof(ompi_osc_rdma_send_header_t); header->hdr_base.hdr_flags = 0; header->hdr_windx = sendreq->req_module->p2p_comm->c_contextid; header->hdr_origin = sendreq->req_module->p2p_comm->c_my_rank; - OMPI_PTR_SET_PVAL(header->hdr_origin_sendreq, (void*) sendreq); + header->hdr_origin_sendreq.pval = (void*) sendreq; header->hdr_origin_tag = 0; header->hdr_target_disp = sendreq->req_target_disp; header->hdr_target_count = sendreq->req_target_count; @@ -258,7 +255,7 @@ ompi_osc_rdma_sendreq_send(ompi_osc_rdma_module_t *module, /* Set datatype id and / or pack datatype */ ret = ompi_ddt_get_pack_description(sendreq->req_target_datatype, &packed_ddt); if (OMPI_SUCCESS != ret) goto cleanup; - memcpy((unsigned char*) OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr) + written_data, + memcpy((unsigned char*) descriptor->des_src[0].seg_addr.pval + written_data, packed_ddt, packed_ddt_len); written_data += packed_ddt_len; @@ -271,7 +268,7 @@ ompi_osc_rdma_sendreq_send(ompi_osc_rdma_module_t *module, size_t max_data = sendreq->req_origin_bytes_packed; iov.iov_len = max_data; - iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr) + written_data); + iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) descriptor->des_src[0].seg_addr.pval + written_data); ret = ompi_convertor_pack(&sendreq->req_origin_convertor, &iov, &iov_count, &max_data ); @@ -351,8 +348,8 @@ ompi_osc_rdma_replyreq_send_cb(struct mca_btl_base_module_t* btl, { ompi_osc_rdma_replyreq_t *replyreq = (ompi_osc_rdma_replyreq_t*) descriptor->des_cbdata; - ompi_osc_rdma_reply_header_t *header = (ompi_osc_rdma_reply_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr); + ompi_osc_rdma_reply_header_t *header = + (ompi_osc_rdma_reply_header_t*) descriptor->des_src[0].seg_addr.pval; if (OMPI_SUCCESS != status) { /* requeue and return */ @@ -435,8 +432,7 @@ ompi_osc_rdma_replyreq_send(ompi_osc_rdma_module_t *module, descriptor->des_flags = MCA_BTL_DES_FLAGS_PRIORITY; /* pack header */ - header = (ompi_osc_rdma_reply_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr); + header = (ompi_osc_rdma_reply_header_t*) descriptor->des_src[0].seg_addr.pval; written_data += sizeof(ompi_osc_rdma_reply_header_t); header->hdr_base.hdr_type = OMPI_OSC_RDMA_HDR_REPLY; header->hdr_base.hdr_flags = 0; @@ -451,7 +447,7 @@ ompi_osc_rdma_replyreq_send(ompi_osc_rdma_module_t *module, size_t max_data = replyreq->rep_target_bytes_packed; iov.iov_len = max_data; - iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr) + written_data); + iov.iov_base = (IOVBASE_TYPE*)((unsigned char*) descriptor->des_src[0].seg_addr.pval + written_data); ret = ompi_convertor_pack(&replyreq->rep_target_convertor, &iov, &iov_count, &max_data ); @@ -839,8 +835,7 @@ ompi_osc_rdma_control_send(ompi_osc_rdma_module_t *module, descriptor->des_src[0].seg_len = sizeof(ompi_osc_rdma_control_header_t); /* pack header */ - header = (ompi_osc_rdma_control_header_t*) - OMPI_PTR_GET_PVAL(descriptor->des_src[0].seg_addr); + header = (ompi_osc_rdma_control_header_t*) descriptor->des_src[0].seg_addr.pval; header->hdr_base.hdr_type = type; header->hdr_value[0] = value0; header->hdr_value[1] = value1; diff --git a/ompi/mca/pml/dr/pml_dr_recvfrag.c b/ompi/mca/pml/dr/pml_dr_recvfrag.c index 233a5b099a..00c90c6a16 100644 --- a/ompi/mca/pml/dr/pml_dr_recvfrag.c +++ b/ompi/mca/pml/dr/pml_dr_recvfrag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -105,7 +103,7 @@ void mca_pml_dr_recv_frag_callback( void* cbdata) { mca_btl_base_segment_t* segments = des->des_dst; - mca_pml_dr_hdr_t* hdr = (mca_pml_dr_hdr_t*) OMPI_PTR_GET_PVAL(segments->seg_addr); + mca_pml_dr_hdr_t* hdr = (mca_pml_dr_hdr_t*)segments->seg_addr.pval; mca_pml_dr_comm_t *comm; mca_pml_dr_comm_proc_t *proc; mca_pml_dr_endpoint_t *ep; @@ -149,7 +147,7 @@ void mca_pml_dr_recv_frag_callback( mca_pml_dr_recv_frag_ack(btl, ep->bml_endpoint, &hdr->hdr_common, - OMPI_PTR_GET_PVAL(hdr->hdr_match.hdr_src_ptr), + hdr->hdr_match.hdr_src_ptr.pval, 1, 0); return; } @@ -204,7 +202,7 @@ void mca_pml_dr_recv_frag_callback( mca_pml_dr_recv_frag_ack(btl, ep->bml_endpoint, &hdr->hdr_common, - OMPI_PTR_GET_PVAL(hdr->hdr_match.hdr_src_ptr), + hdr->hdr_match.hdr_src_ptr.pval, ~(uint64_t) 0, hdr->hdr_rndv.hdr_msg_length); return; } else { @@ -232,7 +230,7 @@ void mca_pml_dr_recv_frag_callback( mca_pml_dr_recv_frag_ack(btl, ep->bml_endpoint, &hdr->hdr_common, - OMPI_PTR_GET_PVAL(hdr->hdr_match.hdr_src_ptr), + hdr->hdr_match.hdr_src_ptr.pval, ~(uint64_t) 0, hdr->hdr_rndv.hdr_msg_length); } else { MCA_PML_DR_DEBUG(0,(0, "%s:%d: droping duplicate unmatched rendezvous\n", __FILE__, __LINE__)); @@ -285,7 +283,7 @@ void mca_pml_dr_recv_frag_callback( mca_pml_dr_recv_frag_ack(btl, ep->bml_endpoint, &hdr->hdr_common, - OMPI_PTR_GET_PVAL(hdr->hdr_frag.hdr_src_ptr), + hdr->hdr_frag.hdr_src_ptr.pval, ~(uint64_t) 0, 0); } else { ompi_comm = ompi_comm_lookup(hdr->hdr_common.hdr_ctx); @@ -299,7 +297,7 @@ void mca_pml_dr_recv_frag_callback( assert(proc != NULL); assert(ep == proc->pml_endpoint); - recvreq = (mca_pml_dr_recv_request_t*) OMPI_PTR_GET_PVAL(hdr->hdr_frag.hdr_dst_ptr); + recvreq = (mca_pml_dr_recv_request_t*)hdr->hdr_frag.hdr_dst_ptr.pval; mca_pml_dr_recv_request_progress(recvreq,btl,segments,des->des_dst_cnt); } break; @@ -702,7 +700,7 @@ rematch: if(do_csum && csum != hdr->hdr_csum) { mca_pml_dr_recv_frag_ack(btl, (mca_bml_base_endpoint_t*)ompi_proc->proc_bml, - &hdr->hdr_common, OMPI_PTR_GET_PVAL(hdr->hdr_src_ptr), 0, 0); + &hdr->hdr_common, hdr->hdr_src_ptr.pval, 0, 0); MCA_PML_DR_DEBUG(0,(0, "%s:%d: received corrupted data 0x%08x != 0x%08x (segments %d length %d)\n", __FILE__, __LINE__, csum, hdr->hdr_csum, num_segments, segments[0].seg_len - mca_pml_dr_hdr_size(hdr->hdr_common.hdr_type))); @@ -739,7 +737,7 @@ rematch: if(do_csum && csum != hdr->hdr_csum) { mca_pml_dr_recv_frag_ack(btl, (mca_bml_base_endpoint_t*)ompi_proc->proc_bml, - &hdr->hdr_common, OMPI_PTR_GET_PVAL(hdr->hdr_src_ptr), 0, 0); + &hdr->hdr_common, hdr->hdr_src_ptr.pval, 0, 0); MCA_PML_DR_DEBUG(0,(0, "%s:%d: received corrupted data 0x%08x != 0x%08x\n", __FILE__, __LINE__, csum, hdr->hdr_csum)); MCA_PML_DR_RECV_FRAG_RETURN(frag); @@ -765,7 +763,7 @@ rematch: mca_pml_dr_recv_frag_ack(btl, (mca_bml_base_endpoint_t*)ompi_proc->proc_bml, - &hdr->hdr_common, OMPI_PTR_GET_PVAL(hdr->hdr_src_ptr), 1, 0); + &hdr->hdr_common, hdr->hdr_src_ptr.pval, 1, 0); } if(additional_match) { @@ -810,7 +808,7 @@ void mca_pml_dr_recv_frag_ack( } /* fill out header */ - ack = (mca_pml_dr_ack_hdr_t*) OMPI_PTR_GET_PVAL(des->des_src->seg_addr); + ack = (mca_pml_dr_ack_hdr_t*)des->des_src->seg_addr.pval; ack->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_ACK | hdr->hdr_type; ack->hdr_common.hdr_flags = 0; ack->hdr_common.hdr_src = hdr->hdr_dst; @@ -819,9 +817,9 @@ void mca_pml_dr_recv_frag_ack( ack->hdr_common.hdr_ctx = hdr->hdr_ctx; ack->hdr_vlen = len; ack->hdr_vmask = mask; - OMPI_PTR_SET_PVAL(ack->hdr_src_ptr, src_ptr); - assert(OMPI_PTR_GET_PVAL(ack->hdr_src_ptr)); - OMPI_PTR_SET_PVAL(ack->hdr_dst_ptr, NULL); + ack->hdr_src_ptr.pval = src_ptr; + assert(ack->hdr_src_ptr.pval); + ack->hdr_dst_ptr.pval = NULL; ack->hdr_common.hdr_csum = (uint16_t)(do_csum ? opal_csum(ack, sizeof(mca_pml_dr_ack_hdr_t)) : OPAL_CSUM_ZERO); diff --git a/ompi/mca/pml/dr/pml_dr_recvfrag.h b/ompi/mca/pml/dr/pml_dr_recvfrag.h index 516895d5ba..39e9a3101d 100644 --- a/ompi/mca/pml/dr/pml_dr_recvfrag.h +++ b/ompi/mca/pml/dr/pml_dr_recvfrag.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -87,25 +85,25 @@ do { \ OMPI_FREE_LIST_WAIT(&mca_pml_dr.buffers, item, rc); \ buff = (mca_pml_dr_buffer_t*)item; \ buffers[i] = buff; \ - OMPI_PTR_SET_PVAL(frag->segments[i].seg_addr, buff->addr); \ + frag->segments[i].seg_addr.pval = buff->addr; \ frag->segments[i].seg_len = segs[i].seg_len; \ if( do_csum ) { \ size_t hdr_len = 0; \ if( 0 == i ) { \ hdr_len = mca_pml_dr_hdr_size(hdr->hdr_common.hdr_type);\ memcpy( buff->addr, \ - OMPI_PTR_GET_PVAL(segs[i].seg_addr), \ + segs[i].seg_addr.pval, \ hdr_len ); \ } \ csum = OPAL_CSUM_BCOPY_PARTIAL( \ - ((unsigned char*) OMPI_PTR_GET_PVAL(segs[i].seg_addr))+hdr_len, \ + ((unsigned char*)segs[i].seg_addr.pval)+hdr_len, \ ((unsigned char*)buff->addr)+hdr_len, \ segs[i].seg_len-hdr_len, segs[i].seg_len-hdr_len, \ &ui1, &ui2); \ length += segs[i].seg_len - hdr_len; \ } else { \ memcpy( buff->addr, \ - OMPI_PTR_GET_PVAL(segs[i].seg_addr), \ + segs[i].seg_addr.pval, \ segs[i].seg_len ); \ } \ } \ diff --git a/ompi/mca/pml/dr/pml_dr_recvreq.c b/ompi/mca/pml/dr/pml_dr_recvreq.c index cd0265262c..c52561468e 100644 --- a/ompi/mca/pml/dr/pml_dr_recvreq.c +++ b/ompi/mca/pml/dr/pml_dr_recvreq.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -51,7 +49,7 @@ if(do_csum && csum != hdr->hdr_match.hdr_csum) { \ mca_pml_dr_recv_frag_ack(btl, \ recvreq->req_endpoint->bml_endpoint, \ &hdr->hdr_common, \ - OMPI_PTR_GET_PVAL(hdr->hdr_match.hdr_src_ptr), \ + hdr->hdr_match.hdr_src_ptr.pval, \ 0, 0); \ MCA_PML_DR_DEBUG(0,(0, "%s:%d: [rank %d -> rank %d] " \ "data checksum failed 0x%08x != 0x%08x\n", \ @@ -126,7 +124,7 @@ static void mca_pml_dr_recv_request_construct(mca_pml_dr_recv_request_t* request request->req_vfrag0.vf_len = 1; request->req_vfrag0.vf_mask = 1; - OMPI_PTR_SET_PVAL(request->req_vfrag0.vf_recv, request); + request->req_vfrag0.vf_recv.pval = request; request->req_recv.req_base.req_type = MCA_PML_REQUEST_RECV; request->req_recv.req_base.req_ompi.req_free = mca_pml_dr_recv_request_free; request->req_recv.req_base.req_ompi.req_cancel = mca_pml_dr_recv_request_cancel; @@ -191,7 +189,7 @@ void mca_pml_dr_recv_request_ack( } /* fill out header */ - ack = (mca_pml_dr_ack_hdr_t*) OMPI_PTR_GET_PVAL(des->des_src->seg_addr); + ack = (mca_pml_dr_ack_hdr_t*)des->des_src->seg_addr.pval; ack->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_ACK | hdr->hdr_type; ack->hdr_common.hdr_flags = 0; ack->hdr_common.hdr_dst = recvreq->req_endpoint->dst; @@ -201,7 +199,7 @@ void mca_pml_dr_recv_request_ack( ack->hdr_vlen = vlen; ack->hdr_vmask = mask; ack->hdr_src_ptr = src_ptr; - OMPI_PTR_SET_PVAL(ack->hdr_dst_ptr, recvreq); + ack->hdr_dst_ptr.pval = recvreq; ack->hdr_common.hdr_csum = (uint16_t)(do_csum? opal_csum(ack, sizeof(mca_pml_dr_ack_hdr_t)) : OPAL_CSUM_ZERO); @@ -233,7 +231,7 @@ void mca_pml_dr_recv_request_progress( size_t bytes_received = 0; size_t bytes_delivered = 0; size_t data_offset = 0; - mca_pml_dr_hdr_t* hdr = (mca_pml_dr_hdr_t*) OMPI_PTR_GET_PVAL(segments->seg_addr); + mca_pml_dr_hdr_t* hdr = (mca_pml_dr_hdr_t*)segments->seg_addr.pval; size_t i; uint32_t csum = OPAL_CSUM_ZERO; uint64_t bit; @@ -363,7 +361,7 @@ void mca_pml_dr_recv_request_matched_probe( size_t num_segments) { size_t bytes_packed = 0; - mca_pml_dr_hdr_t* hdr = (mca_pml_dr_hdr_t*) OMPI_PTR_GET_PVAL(segments->seg_addr); + mca_pml_dr_hdr_t* hdr = (mca_pml_dr_hdr_t*)segments->seg_addr.pval; size_t i; switch(hdr->hdr_common.hdr_type) { diff --git a/ompi/mca/pml/dr/pml_dr_recvreq.h b/ompi/mca/pml/dr/pml_dr_recvreq.h index c71c8263a8..5996c46b3b 100644 --- a/ompi/mca/pml/dr/pml_dr_recvreq.h +++ b/ompi/mca/pml/dr/pml_dr_recvreq.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -289,7 +287,7 @@ do { offset -= segment->seg_len; \ } else { \ iov[iov_count].iov_len = segment->seg_len - offset; \ - iov[iov_count].iov_base = (IOVBASE_TYPE*)((unsigned char*) OMPI_PTR_GET_PVAL(segment->seg_addr) + offset); \ + iov[iov_count].iov_base = (IOVBASE_TYPE*)((unsigned char*)segment->seg_addr.pval + offset); \ offset = 0; \ iov_count++; \ } \ diff --git a/ompi/mca/pml/dr/pml_dr_sendreq.c b/ompi/mca/pml/dr/pml_dr_sendreq.c index 278cab1910..9b5c65aa4b 100644 --- a/ompi/mca/pml/dr/pml_dr_sendreq.c +++ b/ompi/mca/pml/dr/pml_dr_sendreq.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -71,7 +69,7 @@ static void mca_pml_dr_send_request_construct(mca_pml_dr_send_request_t* req) req->req_vfrag0.vf_len = 1; req->req_vfrag0.vf_mask = 1; - OMPI_PTR_SET_PVAL(req->req_vfrag0.vf_send, req); + req->req_vfrag0.vf_send.pval = req; req->req_send.req_base.req_type = MCA_PML_REQUEST_SEND; req->req_send.req_base.req_ompi.req_free = mca_pml_dr_send_request_free; req->req_send.req_base.req_ompi.req_cancel = mca_pml_dr_send_request_cancel; @@ -101,7 +99,7 @@ static void mca_pml_dr_error_completion( int status) { mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)descriptor->des_cbdata; - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; switch(status) { case OMPI_ERR_UNREACH: @@ -147,7 +145,7 @@ static void mca_pml_dr_match_completion( int status) { mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)descriptor->des_cbdata; - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; /* kill pending wdog timer */ MCA_PML_DR_VFRAG_WDOG_STOP(vfrag); @@ -215,7 +213,7 @@ static void mca_pml_dr_rndv_completion( int status) { mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)descriptor->des_cbdata; - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; bool schedule = false; /* kill pending wdog timer */ @@ -291,7 +289,7 @@ static void mca_pml_dr_frag_completion( int status) { mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)descriptor->des_cbdata; - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; mca_bml_base_btl_t* bml_btl = vfrag->bml_btl; bool schedule = false; @@ -391,7 +389,7 @@ int mca_pml_dr_send_request_start_buffered( segment = descriptor->des_src; /* pack the data into the BTL supplied buffer */ - iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)OMPI_PTR_GET_PVAL(segment->seg_addr) + + iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)segment->seg_addr.pval + sizeof(mca_pml_dr_rendezvous_hdr_t)); iov.iov_len = size; iov_count = 1; @@ -438,7 +436,7 @@ int mca_pml_dr_send_request_start_buffered( } /* build rendezvous header */ - hdr = (mca_pml_dr_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_dr_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_csum = 0; hdr->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_RNDV; @@ -449,7 +447,7 @@ int mca_pml_dr_send_request_start_buffered( hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag; hdr->hdr_match.hdr_seq = sendreq->req_send.req_base.req_sequence; hdr->hdr_match.hdr_csum = csum; - OMPI_PTR_SET_PVAL(hdr->hdr_match.hdr_src_ptr, &sendreq->req_vfrag0); + hdr->hdr_match.hdr_src_ptr.pval = &sendreq->req_vfrag0; hdr->hdr_rndv.hdr_msg_length = sendreq->req_send.req_bytes_packed; hdr->hdr_common.hdr_csum = (do_csum ? opal_csum(hdr, sizeof(mca_pml_dr_rendezvous_hdr_t)) : @@ -505,7 +503,7 @@ int mca_pml_dr_send_request_start_copy( segment = descriptor->des_src; /* pack the data into the supplied buffer */ - iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)OMPI_PTR_GET_PVAL(segment->seg_addr) + sizeof(mca_pml_dr_match_hdr_t)); + iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)segment->seg_addr.pval + sizeof(mca_pml_dr_match_hdr_t)); iov.iov_len = size; iov_count = 1; max_data = size; @@ -521,7 +519,7 @@ int mca_pml_dr_send_request_start_copy( } /* build match header */ - hdr = (mca_pml_dr_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_dr_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_csum = 0; hdr->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_MATCH; @@ -532,7 +530,7 @@ int mca_pml_dr_send_request_start_copy( hdr->hdr_match.hdr_seq = sendreq->req_send.req_base.req_sequence; hdr->hdr_match.hdr_csum = (size > 0 && do_csum ? sendreq->req_send.req_convertor.checksum : OPAL_CSUM_ZERO); - OMPI_PTR_SET_PVAL(hdr->hdr_match.hdr_src_ptr, &sendreq->req_vfrag0); + hdr->hdr_match.hdr_src_ptr.pval = &sendreq->req_vfrag0; hdr->hdr_common.hdr_vid = sendreq->req_vfrag0.vf_id; hdr->hdr_common.hdr_csum = (do_csum ? opal_csum(hdr, sizeof(mca_pml_dr_match_hdr_t)) : @@ -595,7 +593,7 @@ int mca_pml_dr_send_request_start_prepare( segment = descriptor->des_src; /* build match header */ - hdr = (mca_pml_dr_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_dr_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_csum = 0; hdr->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_MATCH; @@ -606,7 +604,7 @@ int mca_pml_dr_send_request_start_prepare( hdr->hdr_match.hdr_seq = sendreq->req_send.req_base.req_sequence; hdr->hdr_match.hdr_csum = (size > 0 && do_csum ? sendreq->req_send.req_convertor.checksum : OPAL_CSUM_ZERO); - OMPI_PTR_SET_PVAL(hdr->hdr_match.hdr_src_ptr, &sendreq->req_vfrag0); + hdr->hdr_match.hdr_src_ptr.pval = &sendreq->req_vfrag0; hdr->hdr_common.hdr_vid = sendreq->req_vfrag0.vf_id; hdr->hdr_common.hdr_csum = (do_csum ? opal_csum(hdr, sizeof(mca_pml_dr_match_hdr_t)) : @@ -675,7 +673,7 @@ int mca_pml_dr_send_request_start_rndv( segment = des->des_src; /* build hdr */ - hdr = (mca_pml_dr_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_dr_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = flags; hdr->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_RNDV; hdr->hdr_common.hdr_dst = sendreq->req_endpoint->dst; @@ -685,7 +683,7 @@ int mca_pml_dr_send_request_start_rndv( hdr->hdr_common.hdr_csum = 0; hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag; hdr->hdr_match.hdr_seq = sendreq->req_send.req_base.req_sequence; - OMPI_PTR_SET_PVAL(hdr->hdr_match.hdr_src_ptr, &sendreq->req_vfrag0); + hdr->hdr_match.hdr_src_ptr.pval = &sendreq->req_vfrag0; hdr->hdr_match.hdr_csum = size > 0 ? sendreq->req_send.req_convertor.checksum : OPAL_CSUM_ZERO; hdr->hdr_rndv.hdr_msg_length = sendreq->req_send.req_bytes_packed; hdr->hdr_common.hdr_csum = (do_csum ? @@ -728,7 +726,7 @@ int mca_pml_dr_send_request_schedule(mca_pml_dr_send_request_t* sendreq) */ mca_pml_dr_endpoint_t* endpoint = sendreq->req_endpoint; - assert(OMPI_PTR_GET_PVAL(sendreq->req_vfrag0.vf_recv) != NULL); + assert(sendreq->req_vfrag0.vf_recv.pval != NULL); if(OPAL_THREAD_ADD32(&sendreq->req_lock,1) == 1) { do { size_t bytes_remaining; @@ -789,7 +787,7 @@ int mca_pml_dr_send_request_schedule(mca_pml_dr_send_request_t* sendreq) des->des_cbdata = vfrag; /* setup header */ - hdr = (mca_pml_dr_frag_hdr_t*)OMPI_PTR_GET_PVAL(des->des_src->seg_addr); + hdr = (mca_pml_dr_frag_hdr_t*)des->des_src->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_csum = 0; hdr->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_FRAG; @@ -801,7 +799,7 @@ int mca_pml_dr_send_request_schedule(mca_pml_dr_send_request_t* sendreq) hdr->hdr_frag_idx = vfrag->vf_idx; hdr->hdr_frag_csum = sendreq->req_send.req_convertor.checksum; hdr->hdr_frag_offset = offset_in_msg; - OMPI_PTR_SET_PVAL(hdr->hdr_src_ptr, vfrag); + hdr->hdr_src_ptr.pval = vfrag; hdr->hdr_dst_ptr = sendreq->req_vfrag0.vf_recv; hdr->hdr_common.hdr_csum = (do_csum ? opal_csum(hdr, sizeof(mca_pml_dr_frag_hdr_t)) : @@ -913,7 +911,7 @@ int mca_pml_dr_send_request_schedule(mca_pml_dr_send_request_t* sendreq) des->des_cbdata = vfrag; /* setup header */ - hdr = (mca_pml_dr_frag_hdr_t*)OMPI_PTR_GET_PVAL(des->des_src->seg_addr); + hdr = (mca_pml_dr_frag_hdr_t*)des->des_src->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_csum = 0; hdr->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_FRAG; @@ -926,7 +924,7 @@ int mca_pml_dr_send_request_schedule(mca_pml_dr_send_request_t* sendreq) hdr->hdr_frag_csum = (do_csum ? sendreq->req_send.req_convertor.checksum : OPAL_CSUM_ZERO); hdr->hdr_frag_offset = sendreq->req_send_offset; - OMPI_PTR_SET_PVAL(hdr->hdr_src_ptr, vfrag); + hdr->hdr_src_ptr.pval = vfrag; hdr->hdr_dst_ptr = sendreq->req_vfrag0.vf_recv; hdr->hdr_common.hdr_csum = (do_csum ? opal_csum(hdr, sizeof(mca_pml_dr_frag_hdr_t)): OPAL_CSUM_ZERO); @@ -971,8 +969,8 @@ void mca_pml_dr_send_request_match_ack( mca_btl_base_module_t* btl, mca_pml_dr_ack_hdr_t* ack) { - mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)OMPI_PTR_GET_PVAL(ack->hdr_src_ptr); - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)ack->hdr_src_ptr.pval; + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; OPAL_THREAD_LOCK(&ompi_request_lock); @@ -1021,8 +1019,8 @@ void mca_pml_dr_send_request_rndv_ack( mca_btl_base_module_t* btl, mca_pml_dr_ack_hdr_t* ack) { - mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)OMPI_PTR_GET_PVAL(ack->hdr_src_ptr); - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)ack->hdr_src_ptr.pval; + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; OPAL_THREAD_LOCK(&ompi_request_lock); @@ -1101,8 +1099,8 @@ void mca_pml_dr_send_request_frag_ack( mca_btl_base_module_t* btl, mca_pml_dr_ack_hdr_t* ack) { - mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)OMPI_PTR_GET_PVAL(ack->hdr_src_ptr); - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*)ack->hdr_src_ptr.pval; + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; bool schedule = false; MCA_PML_DR_VFRAG_ACK_STOP(vfrag); diff --git a/ompi/mca/pml/dr/pml_dr_sendreq.h b/ompi/mca/pml/dr/pml_dr_sendreq.h index a5d23b5813..84d58b95d9 100644 --- a/ompi/mca/pml/dr/pml_dr_sendreq.h +++ b/ompi/mca/pml/dr/pml_dr_sendreq.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -309,7 +307,7 @@ do { vfrag->vf_id = OPAL_THREAD_ADD32(&pml_endpoint->vfrag_seq,1); \ vfrag->vf_offset = sendreq->req_send_offset; \ vfrag->vf_max_send_size = max_send_size; \ - OMPI_PTR_SET_PVAL(vfrag->vf_send, sendreq); \ + vfrag->vf_send.pval = sendreq; \ sendreq->req_vfrag = vfrag; \ } while(0) @@ -378,8 +376,8 @@ do { \ mca_bml_base_alloc(vfrag->bml_btl, &des_new, \ des_old->des_src->seg_len); \ sendreq->req_descriptor = des_new; \ - memcpy(OMPI_PTR_GET_PVAL(des_new->des_src->seg_addr), \ - OMPI_PTR_GET_PVAL(des_old->des_src->seg_addr), \ + memcpy(des_new->des_src->seg_addr.pval, \ + des_old->des_src->seg_addr.pval, \ des_old->des_src->seg_len); \ des_new->des_flags = des_old->des_flags; \ des_new->des_cbdata = des_old->des_cbdata; \ @@ -411,7 +409,7 @@ do { \ sizeof(mca_pml_dr_rendezvous_hdr_t)); \ des_old = sendreq->req_descriptor; \ /* build hdr */ \ - hdr = (mca_pml_dr_hdr_t*) OMPI_PTR_GET_PVAL(des_new->des_src->seg_addr); \ + hdr = (mca_pml_dr_hdr_t*)des_new->des_src->seg_addr.pval; \ hdr->hdr_common.hdr_flags = 0; \ hdr->hdr_common.hdr_type = MCA_PML_DR_HDR_TYPE_RNDV; \ hdr->hdr_common.hdr_dst = endpoint->dst; \ @@ -419,7 +417,7 @@ do { \ hdr->hdr_common.hdr_src = endpoint->src; \ hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag; \ hdr->hdr_match.hdr_seq = sendreq->req_send.req_base.req_sequence; \ - OMPI_PTR_SET_PVAL(hdr->hdr_match.hdr_src_ptr, &sendreq->req_vfrag0); \ + hdr->hdr_match.hdr_src_ptr.pval = &sendreq->req_vfrag0; \ hdr->hdr_match.hdr_csum = OPAL_CSUM_ZERO; \ hdr->hdr_common.hdr_vid = sendreq->req_vfrag0.vf_id; \ hdr->hdr_rndv.hdr_msg_length = sendreq->req_send.req_bytes_packed; \ diff --git a/ompi/mca/pml/dr/pml_dr_vfrag.c b/ompi/mca/pml/dr/pml_dr_vfrag.c index 72d38e4997..75897640cc 100644 --- a/ompi/mca/pml/dr/pml_dr_vfrag.c +++ b/ompi/mca/pml/dr/pml_dr_vfrag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -29,8 +27,8 @@ static void mca_pml_dr_vfrag_ack_timeout(int fd, short event, void* vfrag); static void mca_pml_dr_vfrag_construct(mca_pml_dr_vfrag_t* vfrag) { - OMPI_PTR_SET_PVAL(vfrag->vf_send, NULL); - OMPI_PTR_SET_PVAL(vfrag->vf_recv, NULL); + vfrag->vf_send.pval = NULL; + vfrag->vf_recv.pval = NULL; vfrag->vf_id = 0; vfrag->vf_idx = 0; vfrag->vf_len = 0; @@ -69,8 +67,7 @@ OBJ_CLASS_INSTANCE( static void mca_pml_dr_vfrag_wdog_timeout(int fd, short event, void* data) { mca_pml_dr_vfrag_t* vfrag = (mca_pml_dr_vfrag_t*) data; - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*) - OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; MCA_PML_DR_DEBUG(0,(0, "%s:%d:%s: wdog timeout: 0x%08x vid: %d", __FILE__, __LINE__, __func__, vfrag, vfrag->vf_id)); @@ -158,8 +155,7 @@ static void mca_pml_dr_vfrag_ack_timeout(int fd, short event, void* data) void mca_pml_dr_vfrag_reset(mca_pml_dr_vfrag_t* vfrag) { - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*) - OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; /* update counters - give new BTL a fair chance :-) */ vfrag->vf_ack_cnt = 0; @@ -190,8 +186,7 @@ void mca_pml_dr_vfrag_reset(mca_pml_dr_vfrag_t* vfrag) void mca_pml_dr_vfrag_reschedule(mca_pml_dr_vfrag_t* vfrag) { - mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*) - OMPI_PTR_GET_PVAL(vfrag->vf_send); + mca_pml_dr_send_request_t* sendreq = (mca_pml_dr_send_request_t*)vfrag->vf_send.pval; /* start wdog timer */ MCA_PML_DR_VFRAG_WDOG_START(vfrag); diff --git a/ompi/mca/pml/dr/pml_dr_vfrag.h b/ompi/mca/pml/dr/pml_dr_vfrag.h index 3eebd2ac77..9029dc4e21 100644 --- a/ompi/mca/pml/dr/pml_dr_vfrag.h +++ b/ompi/mca/pml/dr/pml_dr_vfrag.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -88,7 +86,7 @@ do { \ (vfrag)->vf_ack = 0; \ (vfrag)->vf_wdog_cnt = 0; \ (vfrag)->vf_ack_cnt = 0; \ - OMPI_PTR_SET_PVAL((vfrag)->vf_recv, NULL); \ + (vfrag)->vf_recv.pval = NULL; \ (vfrag)->vf_state = 0; \ (vfrag)->vf_pending = 0; \ (vfrag)->vf_wdog_tv = mca_pml_dr.wdog_timer; \ diff --git a/ompi/mca/pml/ob1/pml_ob1.c b/ompi/mca/pml/ob1/pml_ob1.c index 0cfdbacd75..8704f89145 100644 --- a/ompi/mca/pml/ob1/pml_ob1.c +++ b/ompi/mca/pml/ob1/pml_ob1.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -243,10 +241,10 @@ int mca_pml_ob1_send_fin_btl( fin->des_cbdata = NULL; /* fill in header */ - hdr = (mca_pml_ob1_fin_hdr_t*) OMPI_PTR_GET_PVAL(fin->des_src->seg_addr); + hdr = (mca_pml_ob1_fin_hdr_t*)fin->des_src->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_FIN; - OMPI_PTR_SET_PVAL(hdr->hdr_des, hdr_des); + hdr->hdr_des.pval = hdr_des; #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT #ifdef WORDS_BIGENDIAN @@ -309,25 +307,25 @@ void mca_pml_ob1_process_pending_packets(mca_bml_base_btl_t* bml_btl) case MCA_PML_OB1_HDR_TYPE_ACK: rc = mca_pml_ob1_recv_request_ack_send_btl(pckt->proc, send_dst, - OMPI_PTR_GET_LVAL(pckt->hdr.hdr_ack.hdr_src_req), - OMPI_PTR_GET_PVAL(pckt->hdr.hdr_ack.hdr_dst_req), + pckt->hdr.hdr_ack.hdr_src_req.lval, + pckt->hdr.hdr_ack.hdr_dst_req.pval, pckt->hdr.hdr_ack.hdr_rdma_offset); MCA_PML_OB1_PCKT_PENDING_RETURN(pckt); if(OMPI_ERR_OUT_OF_RESOURCE == rc) { MCA_PML_OB1_ADD_ACK_TO_PENDING(pckt->proc, - OMPI_PTR_GET_LVAL(pckt->hdr.hdr_ack.hdr_src_req), - OMPI_PTR_GET_PVAL(pckt->hdr.hdr_ack.hdr_dst_req), + pckt->hdr.hdr_ack.hdr_src_req.lval, + pckt->hdr.hdr_ack.hdr_dst_req.pval, pckt->hdr.hdr_ack.hdr_rdma_offset); return; } break; case MCA_PML_OB1_HDR_TYPE_FIN: rc = mca_pml_ob1_send_fin_btl(pckt->proc, send_dst, - OMPI_PTR_GET_PVAL(pckt->hdr.hdr_fin.hdr_des)); + pckt->hdr.hdr_fin.hdr_des.pval); MCA_PML_OB1_PCKT_PENDING_RETURN(pckt); if(OMPI_ERR_OUT_OF_RESOURCE == rc) { MCA_PML_OB1_ADD_FIN_TO_PENDING(pckt->proc, - OMPI_PTR_GET_PVAL(pckt->hdr.hdr_fin.hdr_des), pckt->bml_btl); + pckt->hdr.hdr_fin.hdr_des.pval, pckt->bml_btl); return; } break; diff --git a/ompi/mca/pml/ob1/pml_ob1.h b/ompi/mca/pml/ob1/pml_ob1.h index cbeb1443f2..330139168d 100644 --- a/ompi/mca/pml/ob1/pml_ob1.h +++ b/ompi/mca/pml/ob1/pml_ob1.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -265,7 +263,7 @@ do { \ \ MCA_PML_OB1_PCKT_PENDING_ALLOC(_pckt,_rc); \ _pckt->hdr.hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_FIN; \ - OMPI_PTR_SET_PVAL(_pckt->hdr.hdr_fin.hdr_des, (D)); \ + _pckt->hdr.hdr_fin.hdr_des.pval = (D); \ _pckt->proc = (P); \ _pckt->bml_btl = (B); \ OPAL_THREAD_LOCK(&mca_pml_ob1.lock); \ diff --git a/ompi/mca/pml/ob1/pml_ob1_recvfrag.c b/ompi/mca/pml/ob1/pml_ob1_recvfrag.c index 05df5aabee..750501978b 100644 --- a/ompi/mca/pml/ob1/pml_ob1_recvfrag.c +++ b/ompi/mca/pml/ob1/pml_ob1_recvfrag.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -82,7 +80,7 @@ void mca_pml_ob1_recv_frag_callback( void* cbdata) { mca_btl_base_segment_t* segments = des->des_dst; - mca_pml_ob1_hdr_t* hdr = (mca_pml_ob1_hdr_t*) OMPI_PTR_GET_PVAL(segments->seg_addr); + mca_pml_ob1_hdr_t* hdr = (mca_pml_ob1_hdr_t*)segments->seg_addr.pval; if(segments->seg_len < sizeof(mca_pml_ob1_common_hdr_t)) { return; } @@ -128,7 +126,7 @@ void mca_pml_ob1_recv_frag_callback( MCA_PML_OB1_ACK_HDR_NTOH(hdr->hdr_ack); } #endif - sendreq = (mca_pml_ob1_send_request_t*) OMPI_PTR_GET_PVAL(hdr->hdr_ack.hdr_src_req); + sendreq = (mca_pml_ob1_send_request_t*)hdr->hdr_ack.hdr_src_req.pval; sendreq->req_recv = hdr->hdr_ack.hdr_dst_req; sendreq->req_rdma_offset = (size_t)hdr->hdr_ack.hdr_rdma_offset; if(OPAL_THREAD_ADD32(&sendreq->req_state, 1) == 2 && @@ -149,7 +147,7 @@ void mca_pml_ob1_recv_frag_callback( MCA_PML_OB1_FRAG_HDR_NTOH(hdr->hdr_frag); } #endif - recvreq = (mca_pml_ob1_recv_request_t*) OMPI_PTR_GET_PVAL(hdr->hdr_frag.hdr_dst_req); + recvreq = (mca_pml_ob1_recv_request_t*)hdr->hdr_frag.hdr_dst_req.pval; mca_pml_ob1_recv_request_progress(recvreq,btl,segments,des->des_dst_cnt); break; } @@ -162,7 +160,7 @@ void mca_pml_ob1_recv_frag_callback( we remember if we ever change the bml. */ assert(0 == (hdr->hdr_common.hdr_flags & MCA_PML_OB1_HDR_FLAGS_NBO)); #endif - sendreq = (mca_pml_ob1_send_request_t*) OMPI_PTR_GET_PVAL(hdr->hdr_rdma.hdr_req); + sendreq = (mca_pml_ob1_send_request_t*)hdr->hdr_rdma.hdr_req.pval; mca_pml_ob1_send_request_put(sendreq,btl,&hdr->hdr_rdma); break; } @@ -174,7 +172,7 @@ void mca_pml_ob1_recv_frag_callback( MCA_PML_OB1_FIN_HDR_NTOH(hdr->hdr_fin); } #endif - rdma = (mca_btl_base_descriptor_t*) OMPI_PTR_GET_PVAL(hdr->hdr_fin.hdr_des); + rdma = (mca_btl_base_descriptor_t*)hdr->hdr_fin.hdr_des.pval; rdma->des_cbfunc(btl, NULL, rdma, OMPI_SUCCESS); break; } diff --git a/ompi/mca/pml/ob1/pml_ob1_recvfrag.h b/ompi/mca/pml/ob1/pml_ob1_recvfrag.h index fa3d6dde87..f2f7380031 100644 --- a/ompi/mca/pml/ob1/pml_ob1_recvfrag.h +++ b/ompi/mca/pml/ob1/pml_ob1_recvfrag.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -81,10 +79,10 @@ do { \ OMPI_FREE_LIST_WAIT(&mca_pml_ob1.buffers, item, rc); \ buff = (mca_pml_ob1_buffer_t*)item; \ buffers[i] = buff; \ - OMPI_PTR_SET_PVAL(macro_segments[i].seg_addr, buff->addr); \ + macro_segments[i].seg_addr.pval = buff->addr; \ macro_segments[i].seg_len = segs[i].seg_len; \ memcpy(buff->addr, \ - OMPI_PTR_GET_PVAL(segs[i].seg_addr), \ + segs[i].seg_addr.pval, \ segs[i].seg_len); \ } \ \ diff --git a/ompi/mca/pml/ob1/pml_ob1_recvreq.c b/ompi/mca/pml/ob1/pml_ob1_recvreq.c index a9beaa09be..3ba8ff97de 100644 --- a/ompi/mca/pml/ob1/pml_ob1_recvreq.c +++ b/ompi/mca/pml/ob1/pml_ob1_recvreq.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -194,11 +192,11 @@ int mca_pml_ob1_recv_request_ack_send_btl( } /* fill out header */ - ack = (mca_pml_ob1_ack_hdr_t*) OMPI_PTR_GET_PVAL(des->des_src->seg_addr); + ack = (mca_pml_ob1_ack_hdr_t*)des->des_src->seg_addr.pval; ack->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_ACK; ack->hdr_common.hdr_flags = 0; - OMPI_PTR_SET_LVAL(ack->hdr_src_req, hdr_src_req); - OMPI_PTR_SET_PVAL(ack->hdr_dst_req, hdr_dst_req); + ack->hdr_src_req.lval = hdr_src_req; + ack->hdr_dst_req.pval = hdr_dst_req; ack->hdr_rdma_offset = hdr_rdma_offset; #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT @@ -279,7 +277,7 @@ static int mca_pml_ob1_recv_request_ack( } /* let know to shedule function there is no need to put ACK flag */ recvreq->req_ack_sent = true; - return mca_pml_ob1_recv_request_ack_send(proc, OMPI_PTR_GET_LVAL(hdr->hdr_src_req), + return mca_pml_ob1_recv_request_ack_send(proc, hdr->hdr_src_req.lval, recvreq, recvreq->req_rdma_offset); } @@ -306,8 +304,7 @@ static void mca_pml_ob1_rget_completion( } mca_pml_ob1_send_fin(recvreq->req_recv.req_base.req_proc, - OMPI_PTR_GET_PVAL(frag->rdma_hdr.hdr_rget.hdr_des), - bml_btl); + frag->rdma_hdr.hdr_rget.hdr_des.pval, bml_btl); /* is receive request complete */ if( OPAL_THREAD_ADD_SIZE_T(&recvreq->req_bytes_received, frag->rdma_length) @@ -439,7 +436,7 @@ void mca_pml_ob1_recv_request_progress( size_t bytes_received = 0; size_t bytes_delivered = 0; size_t data_offset = 0; - mca_pml_ob1_hdr_t* hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segments->seg_addr); + mca_pml_ob1_hdr_t* hdr = (mca_pml_ob1_hdr_t*)segments->seg_addr.pval; MCA_PML_OB1_COMPUTE_SEGMENT_LENGTH( segments, num_segments, 0, bytes_received ); @@ -529,7 +526,7 @@ void mca_pml_ob1_recv_request_matched_probe( size_t num_segments) { size_t bytes_packed = 0; - mca_pml_ob1_hdr_t* hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segments->seg_addr); + mca_pml_ob1_hdr_t* hdr = (mca_pml_ob1_hdr_t*)segments->seg_addr.pval; switch(hdr->hdr_common.hdr_type) { case MCA_PML_OB1_HDR_TYPE_MATCH: @@ -679,12 +676,12 @@ int mca_pml_ob1_recv_request_schedule_exclusive( mca_pml_ob1_recv_request_t* rec ctl->des_cbfunc = mca_pml_ob1_recv_ctl_completion; /* fill in rdma header */ - hdr = (mca_pml_ob1_rdma_hdr_t*) OMPI_PTR_GET_PVAL(ctl->des_src->seg_addr); + hdr = (mca_pml_ob1_rdma_hdr_t*)ctl->des_src->seg_addr.pval; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_PUT; hdr->hdr_common.hdr_flags = (!recvreq->req_ack_sent) ? MCA_PML_OB1_HDR_TYPE_ACK : 0; hdr->hdr_req = recvreq->req_send; - OMPI_PTR_SET_PVAL(hdr->hdr_des, dst); + hdr->hdr_des.pval = dst; hdr->hdr_rdma_offset = recvreq->req_rdma_offset; hdr->hdr_seg_cnt = dst->des_dst_cnt; memcpy(hdr->hdr_segs, dst->des_dst, diff --git a/ompi/mca/pml/ob1/pml_ob1_recvreq.h b/ompi/mca/pml/ob1/pml_ob1_recvreq.h index 5f26a032d1..cdcbdbbb53 100644 --- a/ompi/mca/pml/ob1/pml_ob1_recvreq.h +++ b/ompi/mca/pml/ob1/pml_ob1_recvreq.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -292,7 +290,7 @@ do { offset -= segment->seg_len; \ } else { \ iov[iov_count].iov_len = segment->seg_len - seg_offset; \ - iov[iov_count].iov_base = (IOVBASE_TYPE*)((unsigned char*)OMPI_PTR_GET_PVAL(segment->seg_addr) + seg_offset); \ + iov[iov_count].iov_base = (IOVBASE_TYPE*)((unsigned char*)segment->seg_addr.pval + seg_offset); \ iov_count++; \ } \ } \ @@ -350,8 +348,8 @@ static inline void mca_pml_ob1_recv_request_schedule( \ MCA_PML_OB1_PCKT_PENDING_ALLOC(_pckt,_rc); \ _pckt->hdr.hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_ACK; \ - OMPI_PTR_SET_LVAL(_pckt->hdr.hdr_ack.hdr_src_req, (S)); \ - OMPI_PTR_SET_PVAL(_pckt->hdr.hdr_ack.hdr_dst_req, (D)); \ + _pckt->hdr.hdr_ack.hdr_src_req.lval = (S); \ + _pckt->hdr.hdr_ack.hdr_dst_req.pval = (D); \ _pckt->hdr.hdr_ack.hdr_rdma_offset = (O); \ _pckt->proc = (P); \ _pckt->bml_btl = NULL; \ diff --git a/ompi/mca/pml/ob1/pml_ob1_sendreq.c b/ompi/mca/pml/ob1/pml_ob1_sendreq.c index 2fc25d2d87..ebbf774312 100644 --- a/ompi/mca/pml/ob1/pml_ob1_sendreq.c +++ b/ompi/mca/pml/ob1/pml_ob1_sendreq.c @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -379,7 +377,7 @@ int mca_pml_ob1_send_request_start_buffered( segment = descriptor->des_src; /* pack the data into the BTL supplied buffer */ - iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)OMPI_PTR_GET_PVAL(segment->seg_addr) + + iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)segment->seg_addr.pval + sizeof(mca_pml_ob1_rendezvous_hdr_t)); iov.iov_len = size; iov_count = 1; @@ -394,7 +392,7 @@ int mca_pml_ob1_send_request_start_buffered( } /* build rendezvous header */ - hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_ob1_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_RNDV; hdr->hdr_match.hdr_ctx = sendreq->req_send.req_base.req_comm->c_contextid; @@ -402,7 +400,7 @@ int mca_pml_ob1_send_request_start_buffered( hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag; hdr->hdr_match.hdr_seq = (uint16_t)sendreq->req_send.req_base.req_sequence; hdr->hdr_rndv.hdr_msg_length = sendreq->req_send.req_bytes_packed; - OMPI_PTR_SET_PVAL(hdr->hdr_rndv.hdr_src_req, sendreq); + hdr->hdr_rndv.hdr_src_req.pval = sendreq; #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT #ifdef WORDS_BIGENDIAN @@ -499,7 +497,7 @@ int mca_pml_ob1_send_request_start_copy( mca_pml_ob1_send_request_t* sendreq, segment = descriptor->des_src; /* pack the data into the supplied buffer */ - iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)OMPI_PTR_GET_PVAL(segment->seg_addr) + sizeof(mca_pml_ob1_match_hdr_t)); + iov.iov_base = (IOVBASE_TYPE*)((unsigned char*)segment->seg_addr.pval + sizeof(mca_pml_ob1_match_hdr_t)); iov.iov_len = size; iov_count = 1; (void)ompi_convertor_pack( &sendreq->req_send.req_convertor, @@ -508,7 +506,7 @@ int mca_pml_ob1_send_request_start_copy( mca_pml_ob1_send_request_t* sendreq, } /* build match header */ - hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_ob1_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_MATCH; hdr->hdr_match.hdr_ctx = sendreq->req_send.req_base.req_comm->c_contextid; @@ -582,7 +580,7 @@ int mca_pml_ob1_send_request_start_prepare( mca_pml_ob1_send_request_t* sendreq, segment = descriptor->des_src; /* build match header */ - hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_ob1_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_MATCH; hdr->hdr_match.hdr_ctx = sendreq->req_send.req_base.req_comm->c_contextid; @@ -679,7 +677,7 @@ int mca_pml_ob1_send_request_start_rdma( segment = des->des_src; /* build match header */ - hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_ob1_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = MCA_PML_OB1_HDR_FLAGS_CONTIG|MCA_PML_OB1_HDR_FLAGS_PIN; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_RGET; hdr->hdr_match.hdr_ctx = sendreq->req_send.req_base.req_comm->c_contextid; @@ -687,8 +685,8 @@ int mca_pml_ob1_send_request_start_rdma( hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag; hdr->hdr_match.hdr_seq = (uint16_t)sendreq->req_send.req_base.req_sequence; hdr->hdr_rndv.hdr_msg_length = sendreq->req_send.req_bytes_packed; - OMPI_PTR_SET_PVAL(hdr->hdr_rndv.hdr_src_req, sendreq); - OMPI_PTR_SET_PVAL(hdr->hdr_rget.hdr_des, src); + hdr->hdr_rndv.hdr_src_req.pval = sendreq; + hdr->hdr_rget.hdr_des.pval = src; hdr->hdr_rget.hdr_seg_cnt = src->des_src_cnt; #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT @@ -734,7 +732,7 @@ int mca_pml_ob1_send_request_start_rdma( segment = des->des_src; /* build hdr */ - hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_ob1_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = MCA_PML_OB1_HDR_FLAGS_CONTIG|MCA_PML_OB1_HDR_FLAGS_PIN; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_RNDV; hdr->hdr_match.hdr_ctx = sendreq->req_send.req_base.req_comm->c_contextid; @@ -742,7 +740,7 @@ int mca_pml_ob1_send_request_start_rdma( hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag; hdr->hdr_match.hdr_seq = (uint16_t)sendreq->req_send.req_base.req_sequence; hdr->hdr_rndv.hdr_msg_length = sendreq->req_send.req_bytes_packed; - OMPI_PTR_SET_PVAL(hdr->hdr_rndv.hdr_src_req, sendreq); + hdr->hdr_rndv.hdr_src_req.pval = sendreq; #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT #ifdef WORDS_BIGENDIAN @@ -817,7 +815,7 @@ int mca_pml_ob1_send_request_start_rndv( segment = des->des_src; /* build hdr */ - hdr = (mca_pml_ob1_hdr_t*)OMPI_PTR_GET_PVAL(segment->seg_addr); + hdr = (mca_pml_ob1_hdr_t*)segment->seg_addr.pval; hdr->hdr_common.hdr_flags = flags; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_RNDV; hdr->hdr_match.hdr_ctx = sendreq->req_send.req_base.req_comm->c_contextid; @@ -825,7 +823,7 @@ int mca_pml_ob1_send_request_start_rndv( hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag; hdr->hdr_match.hdr_seq = (uint16_t)sendreq->req_send.req_base.req_sequence; hdr->hdr_rndv.hdr_msg_length = sendreq->req_send.req_bytes_packed; - OMPI_PTR_SET_PVAL(hdr->hdr_rndv.hdr_src_req, sendreq); + hdr->hdr_rndv.hdr_src_req.pval = sendreq; #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT #ifdef WORDS_BIGENDIAN @@ -943,11 +941,11 @@ int mca_pml_ob1_send_request_schedule_exclusive( des->des_cbdata = sendreq; /* setup header */ - hdr = (mca_pml_ob1_frag_hdr_t*)OMPI_PTR_GET_PVAL(des->des_src->seg_addr); + hdr = (mca_pml_ob1_frag_hdr_t*)des->des_src->seg_addr.pval; hdr->hdr_common.hdr_flags = 0; hdr->hdr_common.hdr_type = MCA_PML_OB1_HDR_TYPE_FRAG; hdr->hdr_frag_offset = sendreq->req_send_offset; - OMPI_PTR_SET_PVAL(hdr->hdr_src_req, sendreq); + hdr->hdr_src_req.pval = sendreq; hdr->hdr_dst_req = sendreq->req_recv; #if OMPI_ENABLE_HETEROGENEOUS_SUPPORT @@ -1022,7 +1020,7 @@ static void mca_pml_ob1_put_completion( mca_btl_base_module_t* btl, } mca_pml_ob1_send_fin(sendreq->req_send.req_base.req_proc, - OMPI_PTR_GET_PVAL(frag->rdma_hdr.hdr_rdma.hdr_des), bml_btl); + frag->rdma_hdr.hdr_rdma.hdr_des.pval, bml_btl); /* check for request completion */ if( OPAL_THREAD_ADD_SIZE_T(&sendreq->req_bytes_delivered, frag->rdma_length) diff --git a/opal/include/opal/types.h b/opal/include/opal/types.h index 13107cbf08..4b6bdc7111 100644 --- a/opal/include/opal/types.h +++ b/opal/include/opal/types.h @@ -9,8 +9,6 @@ * University of Stuttgart. All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. * All rights reserved. - * Copyright (c) 2006 Los Alamos National Security, LLC. All rights - * reserved. * $COPYRIGHT$ * * Additional copyrights may follow @@ -75,91 +73,19 @@ typedef fd_set ompi_fd_set_t; /* - * Convert a 64 bit value to network byte order. + * portable assignment of pointer to int */ -static inline uint64_t hton64(uint64_t val) -{ -#ifdef WORDS_BIGENDIAN - return val; -#else - union { uint64_t ll; - uint32_t l[2]; - } w, r; - w.ll = val; - r.l[0] = htonl(w.l[1]); - r.l[1] = htonl(w.l[0]); - return r.ll; -#endif -} - -/* - * Convert a 64 bit value from network to host byte order. - */ -static inline uint64_t ntoh64(uint64_t val) -{ -#ifdef WORDS_BIGENDIAN - return val; -#else - union { uint64_t ll; - uint32_t l[2]; - } w, r; - - w.ll = val; - r.l[0] = ntohl(w.l[1]); - r.l[1] = ntohl(w.l[0]); - return r.ll; -#endif -} - - -/* - * Portable structure for transporting pointers - */ typedef union { - uint64_t internal_lval; -#if SIZEOF_VOID_P == 4 - void *internal_pvals[2]; -#else /* SIZEOF_VOID_P */ - void *internal_pval; -#endif /* SIZEOF_VOID_P */ + uint64_t lval; + uint32_t ival; + void* pval; + struct { + uint32_t uval; + uint32_t lval; + } sval; } ompi_ptr_t; -#define OMPI_PTR_GET_LVAL(ptr) ptr.internal_lval -#define OMPI_PTR_SET_LVAL(ptr, lval) ptr.internal_lval = lval - -#if SIZEOF_VOID_P == 4 -#ifdef WORDS_BIGENDIAN -#define OMPI_PTR_SET_PVAL(ptr, pval) \ - do { \ - ptr.internal_pvals[0] = 0x0; \ - ptr.internal_pvals[1] = pval; \ - } while (0) -#define OMPI_PTR_GET_PVAL(ptr) ptr.internal_pvals[1] -#else /* WORDS_BIGENDIAN */ -#define OMPI_PTR_SET_PVAL(ptr, pval) \ - do { \ - ptr.internal_pvals[0] = pval; \ - ptr.internal_pvals[1] = 0x0; \ - } while (0) -#define OMPI_PTR_GET_PVAL(ptr) ptr.internal_pvals[0] -#endif /* WORDS_BIGENDIAN */ -#else /* SIZEOF_VOID_P */ -#define OMPI_PTR_SET_PVAL(ptr, pval) ptr.internal_pval = pval; -#define OMPI_PTR_GET_PVAL(ptr) ptr.internal_pval -#endif /* SIZEOF_VOID_P */ - -#define OMPI_PTR_T_HTON(ptr) \ -do { \ - ptr.internal_lval = hton64(ptr.internal_lval); \ -} while (0) - -#define OMPI_PTR_T_NTOH(ptr) \ -do { \ - ptr.internal_lval = ntoh64(ptr.internal_lval); \ -} while (0) - - /* * handle differences in iovec */ @@ -181,6 +107,43 @@ typedef int opal_socklen_t; #endif +/* + * Convert a 64 bit value to network byte order. + */ +static inline uint64_t hton64(uint64_t val) +{ + union { uint64_t ll; + uint32_t l[2]; + } w, r; + + /* platform already in network byte order? */ + if(htonl(1) == 1L) + return val; + w.ll = val; + r.l[0] = htonl(w.l[1]); + r.l[1] = htonl(w.l[0]); + return r.ll; +} + +/* + * Convert a 64 bit value from network to host byte order. + */ + +static inline uint64_t ntoh64(uint64_t val) +{ + union { uint64_t ll; + uint32_t l[2]; + } w, r; + + /* platform already in network byte order? */ + if(htonl(1) == 1L) + return val; + w.ll = val; + r.l[0] = ntohl(w.l[1]); + r.l[1] = ntohl(w.l[0]); + return r.ll; +} + #ifdef WORDS_BIGENDIAN static inline uint16_t opal_swap_bytes2(uint16_t val) {