aboutsummaryrefslogtreecommitdiff
path: root/include/jemalloc/internal/extent.h
blob: 6fe9702b5f6ad47cfc0a466562006049017c2487 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/******************************************************************************/
#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 {
#if (defined(JEMALLOC_SWAP) || defined(JEMALLOC_DSS))
	/* Linkage for the size/address-ordered tree. */
	rb_node(extent_node_t)	link_szad;
#endif

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

#ifdef JEMALLOC_PROF
	/* Profile counters, used for huge objects. */
	prof_ctx_t		*prof_ctx;
#endif

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

	/* Total region size. */
	size_t			size;
};
typedef rb_tree(extent_node_t) extent_tree_t;

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

#if (defined(JEMALLOC_SWAP) || defined(JEMALLOC_DSS))
rb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t)
#endif

rb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t)

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

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