btl_portals_frag.c

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

C
123
字号
/* * 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 "btl_portals.h" #include "btl_portals_frag.h" static voidmca_btl_portals_frag_common_send_constructor(mca_btl_portals_frag_t* frag) {     frag->base.des_dst = 0;    frag->base.des_dst_cnt = 0;    frag->base.des_src = frag->segments;    frag->base.des_src_cnt = 2;    frag->segments[0].seg_addr.pval = frag + 1;    frag->segments[0].seg_len = frag->size;    frag->segments[0].seg_key.key64 = 0;    frag->md_h = PTL_INVALID_HANDLE;}static voidmca_btl_portals_frag_eager_constructor(mca_btl_portals_frag_t* frag) {     frag->size = mca_btl_portals_module.super.btl_eager_limit;      mca_btl_portals_frag_common_send_constructor(frag);     frag->type = BTL_PORTALS_FRAG_TYPE_EAGER;}static voidmca_btl_portals_frag_eager_destructor(mca_btl_portals_frag_t* frag){    if (PTL_INVALID_HANDLE == frag->md_h) {        PtlMDUnlink(frag->md_h);        frag->md_h = PTL_INVALID_HANDLE;    }}static voidmca_btl_portals_frag_max_constructor(mca_btl_portals_frag_t* frag) {     frag->size = mca_btl_portals_module.super.btl_max_send_size;     mca_btl_portals_frag_common_send_constructor(frag);     frag->type = BTL_PORTALS_FRAG_TYPE_MAX;}static voidmca_btl_portals_frag_user_constructor(mca_btl_portals_frag_t* frag) {     frag->base.des_flags = 0;    frag->base.des_dst = 0;    frag->base.des_dst_cnt = 0;    frag->base.des_src = 0;    frag->base.des_src_cnt = 0;    frag->size = 0;     frag->type = BTL_PORTALS_FRAG_TYPE_USER;}static voidmca_btl_portals_frag_recv_constructor(mca_btl_portals_frag_t* frag) {     frag->base.des_flags = 0;    frag->base.des_dst = &frag->segments[0];    frag->base.des_dst_cnt = 1;    frag->base.des_src = NULL;    frag->base.des_src_cnt = 0;    frag->size = 0; }OBJ_CLASS_INSTANCE(    mca_btl_portals_frag_t,     mca_btl_base_descriptor_t,     NULL,     NULL); OBJ_CLASS_INSTANCE(    mca_btl_portals_frag_eager_t,     mca_btl_base_descriptor_t,     mca_btl_portals_frag_eager_constructor,     mca_btl_portals_frag_eager_destructor);OBJ_CLASS_INSTANCE(    mca_btl_portals_frag_max_t,     mca_btl_base_descriptor_t,     mca_btl_portals_frag_max_constructor,     NULL); OBJ_CLASS_INSTANCE(    mca_btl_portals_frag_user_t,     mca_btl_base_descriptor_t,     mca_btl_portals_frag_user_constructor,     NULL); OBJ_CLASS_INSTANCE(    mca_btl_portals_frag_recv_t,     mca_btl_base_descriptor_t,     mca_btl_portals_frag_recv_constructor,     NULL); 

⌨️ 快捷键说明

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