diff options
Diffstat (limited to 'src/pmdk/src/include/libpmemobj/lists_atomic_base.h')
-rw-r--r-- | src/pmdk/src/include/libpmemobj/lists_atomic_base.h | 39 |
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 */ |