about summary refs log tree commit diff stats
path: root/src/include/rbtree.h
diff options
context:
space:
mode:
authorrajdakin <rajdakin@gmail.com>2023-12-31 15:49:57 +0100
committerGitHub <noreply@github.com>2023-12-31 15:49:57 +0100
commit5e9e1faedc97194e46f3fb4b3665ec416ce7efbf (patch)
tree27d345328502d82ede6c58e3d181d1f682bab255 /src/include/rbtree.h
parentdba6a88341bacbf52d0f0c37117a04164afce9fa (diff)
downloadbox64-5e9e1faedc97194e46f3fb4b3665ec416ce7efbf.tar.gz
box64-5e9e1faedc97194e46f3fb4b3665ec416ce7efbf.zip
[MEMORY] Switched from a sparse array to a red-black tree (#1180)
* [MEMORY] Switched from a sparse array to an RB tree

* [RBTREE] Fixed the Android build
Diffstat (limited to 'src/include/rbtree.h')
-rw-r--r--src/include/rbtree.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/include/rbtree.h b/src/include/rbtree.h
new file mode 100644
index 00000000..a624b5da
--- /dev/null
+++ b/src/include/rbtree.h
@@ -0,0 +1,13 @@
+#include <stdint.h>
+
+typedef struct rbtree rbtree;
+
+rbtree* init_rbtree();
+void delete_rbtree(rbtree *tree);
+
+uint8_t rb_get(rbtree *tree, uintptr_t addr);
+int rb_get_end(rbtree* tree, uintptr_t addr, uint8_t* val, uintptr_t* end);
+int rb_set(rbtree *tree, uintptr_t start, uintptr_t end, uint8_t data);
+int rb_unset(rbtree *tree, uintptr_t start, uintptr_t end);
+
+void print_rbtree(const rbtree *tree);
\ No newline at end of file