1
1
openmpi/opal/mca/btl/sm/btl_sm_frag.c
Nathan Hjelm ec33374339 btl: remove des_remote/des_remote_count from the mca_btl_base_descriptor_t
structure

This structure member was originally used to specify the remote segment
for an RDMA operation. Since the new btl interface no longer uses
desriptors for RDMA this member no longer has a purpose. In addition
to removing these members the local segment information has been
renamed to des_segments/des_segment_count.
2014-11-19 11:33:02 -07:00

77 строки
2.4 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* University Research and Technology
* Corporation. All rights reserved.
* Copyright (c) 2004-2009 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "opal_config.h"
#include "btl_sm_frag.h"
static inline void mca_btl_sm_frag_common_constructor(mca_btl_sm_frag_t* frag)
{
frag->hdr = (mca_btl_sm_hdr_t*)frag->base.super.ptr;
if(frag->hdr != NULL) {
frag->hdr->frag = (mca_btl_sm_frag_t*)((uintptr_t)frag |
MCA_BTL_SM_FRAG_ACK);
frag->segment.base.seg_addr.pval = ((char*)frag->hdr) +
sizeof(mca_btl_sm_hdr_t);
frag->hdr->my_smp_rank = mca_btl_sm_component.my_smp_rank;
}
frag->segment.base.seg_len = frag->size;
frag->base.des_segments = &frag->segment.base;
frag->base.des_segment_count = 1;
frag->base.des_flags = 0;
}
static void mca_btl_sm_frag1_constructor(mca_btl_sm_frag_t* frag)
{
frag->size = mca_btl_sm_component.eager_limit;
frag->my_list = &mca_btl_sm_component.sm_frags_eager;
mca_btl_sm_frag_common_constructor(frag);
}
static void mca_btl_sm_frag2_constructor(mca_btl_sm_frag_t* frag)
{
frag->size = mca_btl_sm_component.max_frag_size;
frag->my_list = &mca_btl_sm_component.sm_frags_max;
mca_btl_sm_frag_common_constructor(frag);
}
static void mca_btl_sm_user_constructor(mca_btl_sm_frag_t* frag)
{
frag->size = 0;
frag->my_list = &mca_btl_sm_component.sm_frags_user;
mca_btl_sm_frag_common_constructor(frag);
}
OBJ_CLASS_INSTANCE(
mca_btl_sm_frag1_t,
mca_btl_base_descriptor_t,
mca_btl_sm_frag1_constructor,
NULL);
OBJ_CLASS_INSTANCE(
mca_btl_sm_frag2_t,
mca_btl_base_descriptor_t,
mca_btl_sm_frag2_constructor,
NULL);
OBJ_CLASS_INSTANCE(
mca_btl_sm_user_t,
mca_btl_base_descriptor_t,
mca_btl_sm_user_constructor,
NULL);