]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/jemalloc/include/jemalloc/internal/extent.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / jemalloc / include / jemalloc / internal / extent.h
1 /******************************************************************************/
2 #ifdef JEMALLOC_H_TYPES
3
4 typedef struct extent_node_s extent_node_t;
5
6 #endif /* JEMALLOC_H_TYPES */
7 /******************************************************************************/
8 #ifdef JEMALLOC_H_STRUCTS
9
10 /* Tree of extents. */
11 struct extent_node_s {
12         /* Linkage for the size/address-ordered tree. */
13         rb_node(extent_node_t)  link_szad;
14
15         /* Linkage for the address-ordered tree. */
16         rb_node(extent_node_t)  link_ad;
17
18         /* Profile counters, used for huge objects. */
19         prof_ctx_t              *prof_ctx;
20
21         /* Pointer to the extent that this tree node is responsible for. */
22         void                    *addr;
23
24         /* Total region size. */
25         size_t                  size;
26
27         /* True if zero-filled; used by chunk recycling code. */
28         bool                    zeroed;
29 };
30 typedef rb_tree(extent_node_t) extent_tree_t;
31
32 #endif /* JEMALLOC_H_STRUCTS */
33 /******************************************************************************/
34 #ifdef JEMALLOC_H_EXTERNS
35
36 rb_proto(, extent_tree_szad_, extent_tree_t, extent_node_t)
37
38 rb_proto(, extent_tree_ad_, extent_tree_t, extent_node_t)
39
40 #endif /* JEMALLOC_H_EXTERNS */
41 /******************************************************************************/
42 #ifdef JEMALLOC_H_INLINES
43
44 #endif /* JEMALLOC_H_INLINES */
45 /******************************************************************************/
46