2005-09-04 08:17:00 +04:00
|
|
|
/**
|
|
|
|
* 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$
|
|
|
|
*/
|
|
|
|
/**
|
|
|
|
* @file
|
|
|
|
* Description of the Registration Cache framework
|
|
|
|
*/
|
|
|
|
#ifndef MCA_RCACHE_H
|
|
|
|
#define MCA_RCACHE_H
|
|
|
|
#include "mca/mca.h"
|
|
|
|
#include "info/info.h"
|
|
|
|
#include "opal/class/opal_list.h"
|
|
|
|
#include "mca/mpool/mpool.h"
|
2005-09-14 02:06:44 +04:00
|
|
|
#include "opal/threads/mutex.h"
|
2005-09-04 08:17:00 +04:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* component initialize
|
|
|
|
*/
|
|
|
|
typedef struct mca_rcache_base_module_t* (*mca_rcache_base_component_init_fn_t)(void);
|
|
|
|
|
|
|
|
|
|
|
|
typedef int (*mca_rcache_base_module_find_fn_t) (
|
|
|
|
struct mca_rcache_base_module_t* rcache,
|
|
|
|
void* addr,
|
|
|
|
size_t size,
|
2005-09-08 00:37:17 +04:00
|
|
|
ompi_pointer_array_t *regs,
|
|
|
|
uint32_t *cnt
|
2005-09-04 08:17:00 +04:00
|
|
|
);
|
|
|
|
|
|
|
|
typedef int (*mca_rcache_base_module_insert_fn_t)(
|
|
|
|
struct mca_rcache_base_module_t* rcache,
|
|
|
|
mca_mpool_base_registration_t* registration,
|
|
|
|
uint32_t flags
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef int (*mca_rcache_base_module_delete_fn_t) (
|
|
|
|
struct mca_rcache_base_module_t* rcache,
|
|
|
|
mca_mpool_base_registration_t* registration,
|
|
|
|
uint32_t flags
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* finalize
|
|
|
|
*/
|
|
|
|
typedef void (*mca_rcache_base_module_finalize_fn_t)(
|
|
|
|
struct mca_rcache_base_module_t*
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* rcache component descriptor. Contains component version information and
|
|
|
|
* open/close/init functions
|
|
|
|
*/
|
|
|
|
|
|
|
|
struct mca_rcache_base_component_1_0_0_t{
|
|
|
|
mca_base_component_t rcache_version; /**< version */
|
|
|
|
mca_base_component_data_1_0_0_t rcache_data; /**<metadata */
|
|
|
|
mca_rcache_base_component_init_fn_t rcache_init; /**<init function */
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct mca_rcache_base_component_1_0_0_t mca_rcache_base_component_1_0_0_t;
|
|
|
|
|
|
|
|
typedef struct mca_rcache_base_component_1_0_0_t mca_rcache_base_component_t;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* rcache module descriptor
|
|
|
|
*/
|
|
|
|
struct mca_rcache_base_module_t {
|
|
|
|
mca_rcache_base_component_t *rcache_component; /**< component struct */
|
|
|
|
mca_rcache_base_module_find_fn_t rcache_find;
|
|
|
|
mca_rcache_base_module_insert_fn_t rcache_insert;
|
|
|
|
mca_rcache_base_module_delete_fn_t rcache_delete;
|
|
|
|
mca_rcache_base_module_finalize_fn_t rcache_finalize;
|
2005-09-14 02:06:44 +04:00
|
|
|
opal_mutex_t lock;
|
2005-09-04 08:17:00 +04:00
|
|
|
};
|
|
|
|
typedef struct mca_rcache_base_module_t mca_rcache_base_module_t;
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-09-08 00:37:17 +04:00
|
|
|
|
|
|
|
|
2005-09-04 08:17:00 +04:00
|
|
|
/**
|
|
|
|
* Macro for use in components that are of type rcache v1.0.0
|
|
|
|
*/
|
|
|
|
#define MCA_RCACHE_BASE_VERSION_1_0_0 \
|
|
|
|
/* rcache v1.0 is chained to MCA v1.0 */ \
|
|
|
|
MCA_BASE_VERSION_1_0_0, \
|
|
|
|
/* rcache v1.0 */ \
|
|
|
|
"rcache", 1, 0, 0
|
|
|
|
|
|
|
|
#endif /* MCA_RCACHE_H */
|
|
|
|
|