osc_pt2pt_sendreq.c

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

C
84
字号
/* * Copyright (c) 2004-2005 The Trustees of Indiana University. *                         All rights reserved. * Copyright (c) 2004-2005 The Trustees of the University of Tennessee. *                         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 "osc_pt2pt_sendreq.h"#include "ompi/datatype/convertor.h"intompi_osc_pt2pt_sendreq_alloc_init(ompi_osc_pt2pt_req_type_t req_type,                                  void *origin_addr, int origin_count,                                  struct ompi_datatype_t *origin_dt,                                  int target, int target_disp, int target_count,                                  struct ompi_datatype_t *target_dt,                                  ompi_osc_pt2pt_module_t *module,                                  ompi_osc_pt2pt_sendreq_t **sendreq){    int ret;    /* allocate a sendreq */    ret = ompi_osc_pt2pt_sendreq_alloc(module, target,                                       sendreq);    if (OMPI_SUCCESS != ret) return ret;    /* initialize local side of sendreq */    ret = ompi_osc_pt2pt_sendreq_init_origin(*sendreq,                                             req_type,                                             origin_addr,                                             origin_count,                                             origin_dt);    if (OMPI_SUCCESS != ret) {        ompi_osc_pt2pt_sendreq_free(*sendreq);        return ret;    }    /* initialize remote side of sendreq */    ret = ompi_osc_pt2pt_sendreq_init_target(*sendreq,                                             target_disp,                                             target_count,                                             target_dt);    if (OMPI_SUCCESS != ret) {        ompi_osc_pt2pt_sendreq_free(*sendreq);        return ret;    }    return OMPI_SUCCESS;}static void ompi_osc_pt2pt_sendreq_construct(ompi_osc_pt2pt_sendreq_t *req){    req->super.req_type = OMPI_REQUEST_WIN;    req->super.req_free = NULL;    req->super.req_cancel = NULL;    OBJ_CONSTRUCT(&(req->req_origin_convertor), ompi_convertor_t);}static void ompi_osc_pt2pt_sendreq_destruct(ompi_osc_pt2pt_sendreq_t *req){    OBJ_DESTRUCT(&(req->req_origin_convertor));}OBJ_CLASS_INSTANCE(ompi_osc_pt2pt_sendreq_t, ompi_request_t,                   ompi_osc_pt2pt_sendreq_construct,                    ompi_osc_pt2pt_sendreq_destruct);

⌨️ 快捷键说明

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