diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-01-23 10:01:11 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-01-23 10:01:11 +0100 |
| commit | 89da530898fa08c23b59e3e3bf64f266f113e014 (patch) | |
| tree | e38ddfff281f2d2144916be550b839081cbcd095 /src/include | |
| parent | 2367e7df504dadd495abe095bd167cce67afb713 (diff) | |
| download | box64-89da530898fa08c23b59e3e3bf64f266f113e014.tar.gz box64-89da530898fa08c23b59e3e3bf64f266f113e014.zip | |
[DYNAREC] use an rbtree for dynablock size and max_db_size update
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/box64context.h | 2 | ||||
| -rw-r--r-- | src/include/rbtree.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/include/box64context.h b/src/include/box64context.h index 96442038..da09bc49 100644 --- a/src/include/box64context.h +++ b/src/include/box64context.h @@ -27,6 +27,7 @@ typedef struct kh_mapsymbols_s kh_mapsymbols_t; typedef struct library_s library_t; typedef struct linkmap_s linkmap_t; typedef struct kh_threadstack_s kh_threadstack_t; +typedef struct rbtree rbtree; typedef struct atfork_fnc_s { uintptr_t prepare; uintptr_t parent; @@ -154,6 +155,7 @@ typedef struct box64context_s { pthread_mutex_t mutex_bridge; #endif uintptr_t max_db_size; // the biggest (in x86_64 instructions bytes) built dynablock + rbtree* db_sizes; int trace_dynarec; pthread_mutex_t mutex_lock; // this is for the Test interpreter #ifdef __riscv diff --git a/src/include/rbtree.h b/src/include/rbtree.h index 82695d8c..c210d55d 100644 --- a/src/include/rbtree.h +++ b/src/include/rbtree.h @@ -12,6 +12,7 @@ uint32_t rb_get(rbtree *tree, uintptr_t addr); int rb_get_end(rbtree* tree, uintptr_t addr, uint32_t* val, uintptr_t* end); int rb_set(rbtree *tree, uintptr_t start, uintptr_t end, uint32_t data); int rb_unset(rbtree *tree, uintptr_t start, uintptr_t end); +uintptr_t rb_get_righter(rbtree *tree); void print_rbtree(const rbtree *tree); |