mtl_mx_probe.c

来自「MPI stands for the Message Passing Inter」· C语言 代码 · 共 74 行

C
74
字号
/* * Copyright (c) 2004-2006 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-2006 The Regents of the University of California. *                         All rights reserved. * Copyright (c) 2006-2007 Los Alamos National Security, LLC.  All rights *                         reserved. * * Additional copyrights may follow * * $HEADER$ */#include "ompi_config.h"#include "ompi/request/request.h"#include "ompi/communicator/communicator.h"#include "ompi/mca/mtl/base/base.h"#include "mtl_mx.h"#include "mtl_mx_types.h"#include "mtl_mx_request.h"intompi_mtl_mx_iprobe(struct mca_mtl_base_module_t* mtl,                    struct ompi_communicator_t *comm,                   int src,                   int tag,                   int *flag,                   struct ompi_status_public_t *status){    uint32_t result;    mx_return_t ret;    mx_status_t mx_status;    uint64_t match_bits;    uint64_t mask_bits;    MX_SET_RECV_BITS(match_bits,                      mask_bits,                     comm->c_contextid,                     src,                     tag);    ret = mx_iprobe(ompi_mtl_mx.mx_endpoint,                    match_bits,                    mask_bits,                    &mx_status,                    &result);    if (MX_SUCCESS != ret) {        opal_output(ompi_mtl_base_output, "Error in mx_iprobe (error %s)\n", mx_strerror(ret));        return OMPI_ERROR;    }    if (result) {        if(MPI_STATUS_IGNORE != status) {             MX_GET_SRC(mx_status.match_info, status->MPI_SOURCE);            MX_GET_TAG(mx_status.match_info, status->MPI_TAG);             status->_count = mx_status.msg_length;        }        *flag = 1;    } else {        *flag = 0;    }    return OMPI_SUCCESS;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?