1
1
openmpi/oshmem/mca/sshmem/ucx/sshmem_ucx.h
Yossi Itigin 94b5e91194 OSHMEM: Add support for shmemx_malloc_with_hint()
- added multiple segments processing
- added shmemx_malloc_with_hint call + set of hints

Signed-off-by: Sergey Oblomov <sergeyo@mellanox.com>
2019-05-10 20:04:57 +03:00

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 */