1 /******************************************************************************/ 2 #ifdef JEMALLOC_H_TYPES 3 4 typedef struct extent_node_s extent_node_t; 5 6 #endif /* JEMALLOC_H_TYPES */ 7 /******************************************************************************/ 8 #ifdef JEMALLOC_H_STRUCTS 9 10 /* Tree of extents. */ 11 struct extent_node_s { 12 /* Linkage for the size/address-ordered tree. */ 13 rb_node(extent_node_t) link_szad; 14 15 /* Linkage for the address-ordered tree. */ 16 rb_node(extent_node_t) link_ad; 17 18 /* Profile counters, used for huge objects. */ 19 prof_ctx_t *prof_ctx; 20 21 /* Pointer to the extent that this tree node is responsible for. */ 22 void *addr; 23 24 /* Total region size. */ 25 size_t size; 26 27 /* Arena from which this extent came, if any */ 28 arena_t *arena; 29 30 /* True if zero-filled; used by chunk recycling code. */ 31 bool zeroed; 32 }; 33 typedef rb_tree(extent_node_t) extent_tree_t; 34 35 #endif /* JEMALLOC_H_STRUCTS */ 36 /******************************************************************************/ 37 #ifdef JEMALLOC_H_EXTERNS 38 39 rb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t) 40 41 rb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t) 42 43 #endif /* JEMALLOC_H_EXTERNS */ 44 /******************************************************************************/ 45 #ifdef JEMALLOC_H_INLINES 46 47 #endif /* JEMALLOC_H_INLINES */ 48 /******************************************************************************/ 49 50