
- added multiple segments processing - added shmemx_malloc_with_hint call + set of hints Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
60 строки
1.7 KiB
C
60 строки
1.7 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);
|
|
int sshmem_ucx_shadow_free(sshmem_ucx_shadow_allocator_t *allocator,
|
|
unsigned index);
|
|
size_t sshmem_ucx_shadow_size(sshmem_ucx_shadow_allocator_t *allocator,
|
|
unsigned index);
|
|
|
|
END_C_DECLS
|
|
|
|
#endif /* MCA_SHMEM_UCX_EXPORT_H */
|