blob: cbfc20a95942d3f19d5b87d3ae3db1de522437ca [file] [log] [blame]
Jason Evanse476f8a2010-01-16 09:53:50 -08001/******************************************************************************/
2#ifdef JEMALLOC_H_TYPES
3
4typedef struct extent_node_s extent_node_t;
5
6#endif /* JEMALLOC_H_TYPES */
7/******************************************************************************/
8#ifdef JEMALLOC_H_STRUCTS
9
10/* Tree of extents. */
11struct extent_node_s {
Jason Evanse476f8a2010-01-16 09:53:50 -080012 /* Linkage for the size/address-ordered tree. */
Jason Evans6109fe02010-02-10 10:37:56 -080013 rb_node(extent_node_t) link_szad;
Jason Evanse476f8a2010-01-16 09:53:50 -080014
15 /* Linkage for the address-ordered tree. */
Jason Evans6109fe02010-02-10 10:37:56 -080016 rb_node(extent_node_t) link_ad;
17
Jason Evans6109fe02010-02-10 10:37:56 -080018 /* Profile counters, used for huge objects. */
Jason Evans602c8e02014-08-18 16:22:13 -070019 prof_tctx_t *prof_tctx;
Jason Evanse476f8a2010-01-16 09:53:50 -080020
21 /* Pointer to the extent that this tree node is responsible for. */
Jason Evans6109fe02010-02-10 10:37:56 -080022 void *addr;
Jason Evanse476f8a2010-01-16 09:53:50 -080023
24 /* Total region size. */
Jason Evans6109fe02010-02-10 10:37:56 -080025 size_t size;
Jason Evans7de92762012-10-08 17:56:11 -070026
Jason Evanse12eaf92014-12-08 14:40:14 -080027 /* Arena from which this extent came, if any. */
aravindfb7fe502014-05-05 15:16:56 -070028 arena_t *arena;
29
Jason Evans7de92762012-10-08 17:56:11 -070030 /* True if zero-filled; used by chunk recycling code. */
31 bool zeroed;
Jason Evanse476f8a2010-01-16 09:53:50 -080032};
33typedef rb_tree(extent_node_t) extent_tree_t;
34
35#endif /* JEMALLOC_H_STRUCTS */
36/******************************************************************************/
37#ifdef JEMALLOC_H_EXTERNS
38
Jason Evanse476f8a2010-01-16 09:53:50 -080039rb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t)
Jason Evanse476f8a2010-01-16 09:53:50 -080040
41rb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t)
42
43#endif /* JEMALLOC_H_EXTERNS */
44/******************************************************************************/
45#ifdef JEMALLOC_H_INLINES
46
47#endif /* JEMALLOC_H_INLINES */
48/******************************************************************************/
49