/******************************************************************************/
#ifdef JEMALLOC_H_TYPES

typedef struct extent_node_s extent_node_t;

#endif /* JEMALLOC_H_TYPES */
/******************************************************************************/
#ifdef JEMALLOC_H_STRUCTS

/* Tree of extents. */
struct extent_node_s {
	/* Linkage for the size/address-ordered tree. */
	rb_node(extent_node_t)	link_szad;

	/* Linkage for the address-ordered tree. */
	rb_node(extent_node_t)	link_ad;

	/* Profile counters, used for huge objects. */
	prof_tctx_t		*prof_tctx;

	/* Pointer to the extent that this tree node is responsible for. */
	void			*addr;

	/* Total region size. */
	size_t			size;

	/* Arena from which this extent came, if any. */
	arena_t			*arena;

	/* True if zero-filled; used by chunk recycling code. */
	bool			zeroed;
};
typedef rb_tree(extent_node_t) extent_tree_t;

#endif /* JEMALLOC_H_STRUCTS */
/******************************************************************************/
#ifdef JEMALLOC_H_EXTERNS

rb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t)

rb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t)

#endif /* JEMALLOC_H_EXTERNS */
/******************************************************************************/
#ifdef JEMALLOC_H_INLINES

#endif /* JEMALLOC_H_INLINES */
/******************************************************************************/

