summaryrefslogtreecommitdiffstats
path: root/src/pmdk/src/include/libpmemobj/lists_atomic_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdk/src/include/libpmemobj/lists_atomic_base.h')
-rw-r--r--src/pmdk/src/include/libpmemobj/lists_atomic_base.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/pmdk/src/include/libpmemobj/lists_atomic_base.h b/src/pmdk/src/include/libpmemobj/lists_atomic_base.h
new file mode 100644
index 000000000..be80d1db5
--- /dev/null
+++ b/src/pmdk/src/include/libpmemobj/lists_atomic_base.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: BSD-3-Clause */
+/* Copyright 2014-2020, Intel Corporation */
+
+/*
+ * libpmemobj/lists_atomic_base.h -- definitions of libpmemobj atomic lists
+ */
+
+#ifndef LIBPMEMOBJ_LISTS_ATOMIC_BASE_H
+#define LIBPMEMOBJ_LISTS_ATOMIC_BASE_H 1
+
+#include <libpmemobj/base.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Non-transactional persistent atomic circular doubly-linked list
+ */
+
+int pmemobj_list_insert(PMEMobjpool *pop, size_t pe_offset, void *head,
+ PMEMoid dest, int before, PMEMoid oid);
+
+PMEMoid pmemobj_list_insert_new(PMEMobjpool *pop, size_t pe_offset, void *head,
+ PMEMoid dest, int before, size_t size, uint64_t type_num,
+ pmemobj_constr constructor, void *arg);
+
+int pmemobj_list_remove(PMEMobjpool *pop, size_t pe_offset, void *head,
+ PMEMoid oid, int free);
+
+int pmemobj_list_move(PMEMobjpool *pop, size_t pe_old_offset,
+ void *head_old, size_t pe_new_offset, void *head_new,
+ PMEMoid dest, int before, PMEMoid oid);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* libpmemobj/lists_atomic_base.h */