]> git.proxmox.com Git - ceph.git/blame - ceph/src/pmdk/src/include/libpmemobj/lists_atomic_base.h
import ceph 16.2.7
[ceph.git] / ceph / src / pmdk / src / include / libpmemobj / lists_atomic_base.h
CommitLineData
a4b75251
TL
1/* SPDX-License-Identifier: BSD-3-Clause */
2/* Copyright 2014-2020, Intel Corporation */
3
4/*
5 * libpmemobj/lists_atomic_base.h -- definitions of libpmemobj atomic lists
6 */
7
8#ifndef LIBPMEMOBJ_LISTS_ATOMIC_BASE_H
9#define LIBPMEMOBJ_LISTS_ATOMIC_BASE_H 1
10
11#include <libpmemobj/base.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17/*
18 * Non-transactional persistent atomic circular doubly-linked list
19 */
20
21int pmemobj_list_insert(PMEMobjpool *pop, size_t pe_offset, void *head,
22 PMEMoid dest, int before, PMEMoid oid);
23
24PMEMoid pmemobj_list_insert_new(PMEMobjpool *pop, size_t pe_offset, void *head,
25 PMEMoid dest, int before, size_t size, uint64_t type_num,
26 pmemobj_constr constructor, void *arg);
27
28int pmemobj_list_remove(PMEMobjpool *pop, size_t pe_offset, void *head,
29 PMEMoid oid, int free);
30
31int pmemobj_list_move(PMEMobjpool *pop, size_t pe_old_offset,
32 void *head_old, size_t pe_new_offset, void *head_new,
33 PMEMoid dest, int before, PMEMoid oid);
34
35#ifdef __cplusplus
36}
37#endif
38
39#endif /* libpmemobj/lists_atomic_base.h */