btl_mx_frag.h

来自「MPI stands for the Message Passing Inter」· C头文件 代码 · 共 101 行

H
101
字号
/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana *                         University Research and Technology *                         Corporation.  All rights reserved. * Copyright (c) 2004-2006 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$ */#ifndef MCA_BTL_MX_FRAG_H#define MCA_BTL_MX_FRAG_H#define MCA_BTL_MX_FRAG_ALIGN (8)#include "ompi_config.h"#include "opal/class/opal_list.h"#include "ompi/class/ompi_free_list.h"#include "btl_mx.h" #if defined(c_plusplus) || defined(__cplusplus)extern "C" {#endif        /**     * MX send framxent derived type.     */    struct mca_btl_mx_frag_t {        mca_btl_base_descriptor_t       base;         mca_btl_base_segment_t          segment[2];         struct mca_btl_base_endpoint_t* endpoint;         mca_btl_base_tag_t              tag;        mx_request_t                    mx_request;        size_t                          size;         ompi_free_list_t*               mx_frag_list;    };     typedef struct mca_btl_mx_frag_t mca_btl_mx_frag_t;    OBJ_CLASS_DECLARATION(mca_btl_mx_frag_t);     typedef struct mca_btl_mx_frag_t mca_btl_mx_frag_eager_t;         OBJ_CLASS_DECLARATION(mca_btl_mx_frag_eager_t);         typedef struct mca_btl_mx_frag_t mca_btl_mx_frag_max_t;         OBJ_CLASS_DECLARATION(mca_btl_mx_frag_max_t);     typedef struct mca_btl_mx_frag_t mca_btl_mx_frag_user_t;         OBJ_CLASS_DECLARATION(mca_btl_mx_frag_user_t);     /*     * Macros to allocate/return descriptors from module specific     * free list(s).     */#define MCA_BTL_MX_FRAG_ALLOC_EAGER(btl, frag, rc)                              \{                                                                               \    ompi_free_list_item_t *item;                                                \    OMPI_FREE_LIST_WAIT( &mca_btl_mx_component.mx_send_eager_frags, item, rc);  \    frag = (mca_btl_mx_frag_t*) item;                                           \    frag->mx_frag_list = (ompi_free_list_t*)&(mca_btl_mx_component.mx_send_eager_frags);  \    frag->segment[0].seg_addr.pval = (void*)(frag+1);                           \    frag->segment[0].seg_len = mca_btl_mx_module.super.btl_eager_limit;         \}#if 0#define MCA_BTL_MX_FRAG_ALLOC_USER(btl, frag, rc)                             \{                                                                             \    ompi_free_list_item_t *item;                                              \    OMPI_FREE_LIST_WAIT( &mca_btl_mx_component.mx_send_user_frags, item, rc); \    frag = (mca_btl_mx_frag_t*) item;                                         \    frag->mx_frag_list = (ompi_free_list_t*)&(mca_btl_mx_component.mx_send_user_frags);  \    frag->segment[0].seg_addr.pval = (void*)(frag+1);                         \    frag->segment[0].seg_len = mca_btl_mx_module.super.btl_eager_limit;       \}#else#define MCA_BTL_MX_FRAG_ALLOC_USER(btl, frag, rc)                             \    MCA_BTL_MX_FRAG_ALLOC_EAGER( btl, frag, rc )#endif#define MCA_BTL_MX_FRAG_RETURN(btl, frag)                                   \{                                                                           \    /*opal_output( 0, "return item to %p\n", frag->mx_frag_list );*/            \    OMPI_FREE_LIST_RETURN( frag->mx_frag_list, (ompi_free_list_item_t*)(frag));  \}#if defined(c_plusplus) || defined(__cplusplus)}#endif#endif

⌨️ 快捷键说明

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