1
1
openmpi/oshmem/mca/sshmem/ucx/sshmem_ucx.h
Sergey Oblomov a51badd627 SHADOW ALLOCATOR: minor code optimization
Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2019-05-16 09:38:01 +03:00

69 строки
2.2 KiB
C

/*
* Copyright (c) 2017 Mellanox Technologies, Inc.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#ifndef MCA_SSHMEM_UCX_EXPORT_H
#define MCA_SSHMEM_UCX_EXPORT_H
#include "oshmem_config.h"
#include "oshmem/mca/sshmem/sshmem.h"
#include <ucp/api/ucp.h>
BEGIN_C_DECLS
typedef struct sshmem_ucx_shadow_allocator sshmem_ucx_shadow_allocator_t;
/**
* globally exported variable to hold the ucx component.
*/
typedef struct mca_sshmem_ucx_component_t {
/* base component struct */
mca_sshmem_base_component_t super;
/* priority for ucx component */
int priority;
} mca_sshmem_ucx_component_t;
OSHMEM_MODULE_DECLSPEC extern mca_sshmem_ucx_component_t
mca_sshmem_ucx_component;
typedef struct mca_sshmem_ucx_segment_context {
void *dev_mem;
sshmem_ucx_shadow_allocator_t *shadow_allocator;
ucp_mem_h ucp_memh;
} mca_sshmem_ucx_segment_context_t;
typedef struct mca_sshmem_ucx_module_t {
mca_sshmem_base_module_t super;
} mca_sshmem_ucx_module_t;
extern mca_sshmem_ucx_module_t mca_sshmem_ucx_module;
sshmem_ucx_shadow_allocator_t *sshmem_ucx_shadow_create(unsigned count);
void sshmem_ucx_shadow_destroy(sshmem_ucx_shadow_allocator_t *allocator);
int sshmem_ucx_shadow_alloc(sshmem_ucx_shadow_allocator_t *allocator,
unsigned count, unsigned *index);
/* Reallocate existing allocated buffer. If possible - used inplace
* reallocation.
* Parameter 'inplace' - out, in case if zero - new buffer was allocated
* (inplace is not possible), user should remove original buffer after data
* is copied, else (if inplace == 0) - no additional action required */
int sshmem_ucx_shadow_realloc(sshmem_ucx_shadow_allocator_t *allocator,
unsigned count, unsigned old_index, unsigned *index,
int *inplace);
int sshmem_ucx_shadow_free(sshmem_ucx_shadow_allocator_t *allocator,
unsigned index);
unsigned sshmem_ucx_shadow_size(sshmem_ucx_shadow_allocator_t *allocator,
unsigned index);
END_C_DECLS
#endif /* MCA_SHMEM_UCX_EXPORT_H */