1234370Sjasone/******************************************************************************/
2234370Sjasone#ifdef JEMALLOC_H_TYPES
3234370Sjasone
4234370Sjasonetypedef struct extent_node_s extent_node_t;
5234370Sjasone
6234370Sjasone#endif /* JEMALLOC_H_TYPES */
7234370Sjasone/******************************************************************************/
8234370Sjasone#ifdef JEMALLOC_H_STRUCTS
9234370Sjasone
10234370Sjasone/* Tree of extents. */
11234370Sjasonestruct extent_node_s {
12234370Sjasone	/* Linkage for the size/address-ordered tree. */
13234370Sjasone	rb_node(extent_node_t)	link_szad;
14234370Sjasone
15234370Sjasone	/* Linkage for the address-ordered tree. */
16234370Sjasone	rb_node(extent_node_t)	link_ad;
17234370Sjasone
18234370Sjasone	/* Profile counters, used for huge objects. */
19234370Sjasone	prof_ctx_t		*prof_ctx;
20234370Sjasone
21234370Sjasone	/* Pointer to the extent that this tree node is responsible for. */
22234370Sjasone	void			*addr;
23234370Sjasone
24234370Sjasone	/* Total region size. */
25234370Sjasone	size_t			size;
26242844Sjasone
27242844Sjasone	/* True if zero-filled; used by chunk recycling code. */
28242844Sjasone	bool			zeroed;
29234370Sjasone};
30234370Sjasonetypedef rb_tree(extent_node_t) extent_tree_t;
31234370Sjasone
32234370Sjasone#endif /* JEMALLOC_H_STRUCTS */
33234370Sjasone/******************************************************************************/
34234370Sjasone#ifdef JEMALLOC_H_EXTERNS
35234370Sjasone
36234370Sjasonerb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t)
37234370Sjasone
38234370Sjasonerb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t)
39234370Sjasone
40234370Sjasone#endif /* JEMALLOC_H_EXTERNS */
41234370Sjasone/******************************************************************************/
42234370Sjasone#ifdef JEMALLOC_H_INLINES
43234370Sjasone
44234370Sjasone#endif /* JEMALLOC_H_INLINES */
45234370Sjasone/******************************************************************************/
46234370Sjasone
47