![Brian Barrett](/assets/img/avatar_default.png)
interconnects that provide matching logic in the library. Currently includes support for MX and some support for Portals * Fix overuse of proc_pml pointer on the ompi_proc structuer, splitting into proc_pml for pml data and proc_bml for the BML endpoint data * bug fixes in bsend init code, which wasn't being used by the OB1 or DR PMLs... This commit was SVN r10642.
67 строки
2.1 KiB
C
67 строки
2.1 KiB
C
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2005 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$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#include "ompi_config.h"
|
|
#include "pml_dr.h"
|
|
#include "pml_dr_endpoint.h"
|
|
#include "orte/mca/ns/ns.h"
|
|
|
|
|
|
static void mca_pml_dr_endpoint_copy(mca_pml_dr_endpoint_t* dst, mca_pml_dr_endpoint_t* src)
|
|
{
|
|
dst->local = src->local;
|
|
dst->src = src->src;
|
|
dst->dst = src->dst;
|
|
ompi_seq_tracker_copy(&dst->seq_sends, &src->seq_sends);
|
|
ompi_seq_tracker_copy(&dst->seq_recvs, &src->seq_recvs);
|
|
ompi_seq_tracker_copy(&dst->seq_recvs_matched, &src->seq_recvs_matched);
|
|
dst->vfrag_seq = src->vfrag_seq;
|
|
/* this won't work for comm spawn and other dynamic
|
|
processes, but will work for initial job start */
|
|
/* dst->local = dst->dst = ompi_pointer_array_add(&mca_pml_dr.endpoints, */
|
|
/* (void*) dst); */
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
static void mca_pml_dr_endpoint_construct(mca_pml_dr_endpoint_t* ep)
|
|
{
|
|
OBJ_CONSTRUCT(&ep->seq_sends, ompi_seq_tracker_t);
|
|
OBJ_CONSTRUCT(&ep->seq_recvs, ompi_seq_tracker_t);
|
|
OBJ_CONSTRUCT(&ep->seq_recvs_matched, ompi_seq_tracker_t);
|
|
ep->vfrag_seq = 0;
|
|
ep->bml_endpoint = NULL;
|
|
}
|
|
|
|
|
|
static void mca_pml_dr_endpoint_destruct(mca_pml_dr_endpoint_t* ep)
|
|
{
|
|
OBJ_DESTRUCT(&ep->seq_sends);
|
|
OBJ_DESTRUCT(&ep->seq_recvs);
|
|
OBJ_DESTRUCT(&ep->seq_recvs_matched);
|
|
}
|
|
|
|
|
|
OBJ_CLASS_INSTANCE(
|
|
mca_pml_dr_endpoint_t,
|
|
opal_object_t,
|
|
mca_pml_dr_endpoint_construct,
|
|
mca_pml_dr_endpoint_destruct);
|