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 /* True if zero-filled; used by chunk recycling code. */ 28 bool zeroed; 29 }; 30 typedef rb_tree(extent_node_t) extent_tree_t; 31 32 #endif /* JEMALLOC_H_STRUCTS */ 33 /******************************************************************************/ 34 #ifdef JEMALLOC_H_EXTERNS 35 36 rb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t) 37 38 rb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t) 39 40 #endif /* JEMALLOC_H_EXTERNS */ 41 /******************************************************************************/ 42 #ifdef JEMALLOC_H_INLINES 43 44 #endif /* JEMALLOC_H_INLINES */ 45 /******************************************************************************/ 46 47