]> git.proxmox.com Git - ceph.git/blob - ceph/src/pmdk/src/tools/rpmemd/rpmemd_fip.h
import ceph 16.2.7
[ceph.git] / ceph / src / pmdk / src / tools / rpmemd / rpmemd_fip.h
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright 2016-2020, Intel Corporation */
3
4 /*
5 * rpmemd_fip.h -- rpmemd libfabric provider module header file
6 */
7
8 #include <stddef.h>
9
10 struct rpmemd_fip;
11
12 struct rpmemd_fip_attr {
13 void *addr;
14 size_t size;
15 unsigned nlanes;
16 size_t nthreads;
17 size_t buff_size;
18 enum rpmem_provider provider;
19 enum rpmem_persist_method persist_method;
20 int (*persist)(const void *addr, size_t len);
21 void *(*memcpy_persist)(void *pmemdest, const void *src, size_t len);
22 int (*deep_persist)(const void *addr, size_t len, void *ctx);
23 void *ctx;
24 };
25
26 struct rpmemd_fip *rpmemd_fip_init(const char *node,
27 const char *service,
28 struct rpmemd_fip_attr *attr,
29 struct rpmem_resp_attr *resp,
30 enum rpmem_err *err);
31 void rpmemd_fip_fini(struct rpmemd_fip *fip);
32
33 int rpmemd_fip_accept(struct rpmemd_fip *fip, int timeout);
34 int rpmemd_fip_process_start(struct rpmemd_fip *fip);
35 int rpmemd_fip_process_stop(struct rpmemd_fip *fip);
36 int rpmemd_fip_wait_close(struct rpmemd_fip *fip, int timeout);
37 int rpmemd_fip_close(struct rpmemd_fip *fip);