1193323Sed#define JEMALLOC_EXTENT_C_ 2193323Sed#include "jemalloc/internal/jemalloc_internal.h" 3193323Sed 4193323Sed/******************************************************************************/ 5193323Sed 6193323Sedstatic inline int 7193323Sedextent_szad_comp(extent_node_t *a, extent_node_t *b) 8193323Sed{ 9193323Sed int ret; 10193323Sed size_t a_size = a->size; 11193323Sed size_t b_size = b->size; 12195340Sed 13193323Sed ret = (a_size > b_size) - (a_size < b_size); 14193323Sed if (ret == 0) { 15193323Sed uintptr_t a_addr = (uintptr_t)a->addr; 16193323Sed uintptr_t b_addr = (uintptr_t)b->addr; 17193323Sed 18193323Sed ret = (a_addr > b_addr) - (a_addr < b_addr); 19193323Sed } 20193323Sed 21193323Sed return (ret); 22193323Sed} 23193323Sed 24193323Sed/* Generate red-black tree functions. */ 25193323Sedrb_gen(, extent_tree_szad_, extent_tree_t, extent_node_t, link_szad, 26195340Sed extent_szad_comp) 27195340Sed 28193323Sedstatic inline int 29193323Sedextent_ad_comp(extent_node_t *a, extent_node_t *b) 30193323Sed{ 31193323Sed uintptr_t a_addr = (uintptr_t)a->addr; 32193323Sed uintptr_t b_addr = (uintptr_t)b->addr; 33193323Sed 34193323Sed return ((a_addr > b_addr) - (a_addr < b_addr)); 35193323Sed} 36193323Sed 37195340Sed/* Generate red-black tree functions. */ 38195340Sedrb_gen(, extent_tree_ad_, extent_tree_t, extent_node_t, link_ad, 39195340Sed extent_ad_comp) 40195340Sed