⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpool_base_tree.c

📁 MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
💻 C
字号:
/**  * 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.5A  * $COPYRIGHT$  *   * Additional copyrights may follow  *   * $HEADER$  *//**  * @file  * Description of the Registration Cache framework  */#include "ompi_config.h"#include "opal/mca/mca.h"#include "mpool_base_tree.h"OBJ_CLASS_INSTANCE(mca_mpool_base_tree_item_t, ompi_free_list_item_t, NULL, NULL); /*  * use globals for the tree and the tree_item free list..  */ompi_rb_tree_t mca_mpool_base_tree; ompi_free_list_t mca_mpool_base_tree_item_free_list;/* *  simple minded compare function...  */int mca_mpool_base_tree_node_compare(void * key1, void * key2){    if(key1 < key2)    {        return -1;    }    else if(key1 > key2)    {        return 1;    }    else    {        return 0;    }}/* * initialize the rb tree */int mca_mpool_base_tree_init(void) {     int rc;    OBJ_CONSTRUCT(&mca_mpool_base_tree, ompi_rb_tree_t);     OBJ_CONSTRUCT(&mca_mpool_base_tree_item_free_list, ompi_free_list_t);     rc = ompi_free_list_init(&mca_mpool_base_tree_item_free_list, sizeof(mca_mpool_base_tree_item_t),                              OBJ_CLASS(mca_mpool_base_tree_item_t), 0, -1 , 4, NULL);    if(OMPI_SUCCESS == rc) {         rc = ompi_rb_tree_init(&mca_mpool_base_tree, mca_mpool_base_tree_node_compare);    }    return rc;}/*  * insert an item in the rb tree  */ int mca_mpool_base_tree_insert(mca_mpool_base_tree_item_t* item) {     return ompi_rb_tree_insert(&mca_mpool_base_tree, item->key, item); }/*  * remove an item from the rb tree  */int mca_mpool_base_tree_delete(mca_mpool_base_tree_item_t* item) {     int rc;     rc = ompi_rb_tree_delete(&mca_mpool_base_tree, item->key);     if(OMPI_SUCCESS == rc) {         mca_mpool_base_tree_item_put(item);     }    return rc;}/** *  find the item in the rb tree   */mca_mpool_base_tree_item_t* mca_mpool_base_tree_find(void* base) {     return (mca_mpool_base_tree_item_t*)ompi_rb_tree_find(&mca_mpool_base_tree, base);}    /*  * get a tree item from the free list  */mca_mpool_base_tree_item_t* mca_mpool_base_tree_item_get(void) {     ompi_free_list_item_t* item = NULL;    int rc;    OMPI_FREE_LIST_GET(&mca_mpool_base_tree_item_free_list,                        item,                        rc);     if(OMPI_SUCCESS == rc) {         return (mca_mpool_base_tree_item_t*) item;     } else {         return NULL;    }}/* * put an item back into the free list */void mca_mpool_base_tree_item_put(mca_mpool_base_tree_item_t* item) {     OMPI_FREE_LIST_RETURN(&mca_mpool_base_tree_item_free_list,                          &(item->super));}

⌨️ 快捷键说明

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