summaryrefslogtreecommitdiffstats
path: root/src/pmdk/src/libpmem2/ravl_interval.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdk/src/libpmem2/ravl_interval.h')
-rw-r--r--src/pmdk/src/libpmem2/ravl_interval.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/pmdk/src/libpmem2/ravl_interval.h b/src/pmdk/src/libpmem2/ravl_interval.h
new file mode 100644
index 000000000..5dd8b592a
--- /dev/null
+++ b/src/pmdk/src/libpmem2/ravl_interval.h
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: BSD-3-Clause */
+/* Copyright 2020, Intel Corporation */
+
+/*
+ * ravl_interval.h -- internal definitions for ravl_interval
+ */
+
+#ifndef RAVL_INTERVAL_H
+#define RAVL_INTERVAL_H
+
+#include "libpmem2.h"
+#include "os_thread.h"
+#include "ravl.h"
+
+struct ravl_interval;
+struct ravl_interval_node;
+
+typedef size_t ravl_interval_min(void *addr);
+typedef size_t ravl_interval_max(void *addr);
+
+struct ravl_interval *ravl_interval_new(ravl_interval_min *min,
+ ravl_interval_min *max);
+void ravl_interval_delete(struct ravl_interval *ri);
+int ravl_interval_insert(struct ravl_interval *ri, void *addr);
+int ravl_interval_remove(struct ravl_interval *ri,
+ struct ravl_interval_node *rin);
+struct ravl_interval_node *ravl_interval_find_equal(struct ravl_interval *ri,
+ void *addr);
+struct ravl_interval_node *ravl_interval_find(struct ravl_interval *ri,
+ void *addr);
+struct ravl_interval_node *ravl_interval_find_closest_prior(
+ struct ravl_interval *ri, void *addr);
+struct ravl_interval_node *ravl_interval_find_closest_later(
+ struct ravl_interval *ri, void *addr);
+void *ravl_interval_data(struct ravl_interval_node *rin);
+#endif