summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-07-02 11:23:22 +0200
committerRichard Braun <rbraun@sceen.net>2017-07-02 11:23:22 +0200
commita3e0c923aa805b8bce6aa370960ecd8cb5ff3ecf (patch)
tree9ec289c5b3eacdff297a534ad09071c546d50639
parentb041edd4557f7b96be6e6c6d7d13772b3d7040f1 (diff)
kern/rdxtree: provide a lockless-aware slot load accessor
-rw-r--r--kern/rdxtree.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/kern/rdxtree.h b/kern/rdxtree.h
index 02ae048..a30512c 100644
--- a/kern/rdxtree.h
+++ b/kern/rdxtree.h
@@ -29,6 +29,8 @@
#include <stddef.h>
#include <stdint.h>
+#include <kern/llsync.h>
+
typedef uint64_t rdxtree_key_t;
/*
@@ -154,6 +156,12 @@ rdxtree_lookup_slot(const struct rdxtree *tree, rdxtree_key_t key)
return rdxtree_lookup_common(tree, key, 1);
}
+static inline void *
+rdxtree_load_slot(void **slot)
+{
+ return llsync_read_ptr(*slot);
+}
+
/*
* Replace a pointer in a tree.
*