1 #ifndef JEMALLOC_INTERNAL_RTREE_EXTERNS_H
2 #define JEMALLOC_INTERNAL_RTREE_EXTERNS_H
3 
4 #pragma GCC visibility push(hidden)
5 
6 bool rtree_new(rtree_t *rtree, unsigned bits);
7 #ifdef JEMALLOC_JET
8 typedef rtree_elm_t *(rtree_node_alloc_t)(tsdn_t *, rtree_t *, size_t);
9 extern rtree_node_alloc_t *rtree_node_alloc;
10 typedef void (rtree_node_dalloc_t)(tsdn_t *, rtree_t *, rtree_elm_t *);
11 extern rtree_node_dalloc_t *rtree_node_dalloc;
12 void	rtree_delete(tsdn_t *tsdn, rtree_t *rtree);
13 #endif
14 rtree_elm_t	*rtree_subtree_read_hard(tsdn_t *tsdn, rtree_t *rtree,
15     unsigned level);
16 rtree_elm_t	*rtree_child_read_hard(tsdn_t *tsdn, rtree_t *rtree,
17     rtree_elm_t *elm, unsigned level);
18 void	rtree_elm_witness_acquire(tsdn_t *tsdn, const rtree_t *rtree,
19     uintptr_t key, const rtree_elm_t *elm);
20 void	rtree_elm_witness_access(tsdn_t *tsdn, const rtree_t *rtree,
21     const rtree_elm_t *elm);
22 void	rtree_elm_witness_release(tsdn_t *tsdn, const rtree_t *rtree,
23     const rtree_elm_t *elm);
24 
25 #pragma GCC visibility pop
26 
27 #endif /* JEMALLOC_INTERNAL_RTREE_EXTERNS_H */
28