extent.h revision 234370
119370Spst/******************************************************************************/
298944Sobrien#ifdef JEMALLOC_H_TYPES
3130803Smarcel
419370Spsttypedef struct extent_node_s extent_node_t;
598944Sobrien
619370Spst#endif /* JEMALLOC_H_TYPES */
798944Sobrien/******************************************************************************/
898944Sobrien#ifdef JEMALLOC_H_STRUCTS
998944Sobrien
1098944Sobrien/* Tree of extents. */
1119370Spststruct extent_node_s {
1298944Sobrien	/* Linkage for the size/address-ordered tree. */
1398944Sobrien	rb_node(extent_node_t)	link_szad;
1498944Sobrien
1598944Sobrien	/* Linkage for the address-ordered tree. */
1619370Spst	rb_node(extent_node_t)	link_ad;
1798944Sobrien
1898944Sobrien	/* Profile counters, used for huge objects. */
1998944Sobrien	prof_ctx_t		*prof_ctx;
2098944Sobrien
2119370Spst	/* Pointer to the extent that this tree node is responsible for. */
22130803Smarcel	void			*addr;
23130803Smarcel
2419370Spst	/* Total region size. */
2519370Spst	size_t			size;
2619370Spst};
2719370Spsttypedef rb_tree(extent_node_t) extent_tree_t;
2819370Spst
2919370Spst#endif /* JEMALLOC_H_STRUCTS */
3019370Spst/******************************************************************************/
3119370Spst#ifdef JEMALLOC_H_EXTERNS
3219370Spst
3319370Spstrb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t)
3419370Spst
3519370Spstrb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t)
3619370Spst
3719370Spst#endif /* JEMALLOC_H_EXTERNS */
3819370Spst/******************************************************************************/
3919370Spst#ifdef JEMALLOC_H_INLINES
4019370Spst
4119370Spst#endif /* JEMALLOC_H_INLINES */
4219370Spst/******************************************************************************/
4319370Spst
4419370Spst