| #include "jemalloc/internal/jemalloc_preamble.h" |
| #include "jemalloc/internal/sz.h" |
| |
| JEMALLOC_ALIGNED(CACHELINE) |
| const size_t sz_pind2sz_tab[NPSIZES+1] = { |
| #define PSZ_yes(lg_grp, ndelta, lg_delta) \ |
| (((ZU(1)<<lg_grp) + (ZU(ndelta)<<lg_delta))), |
| #define PSZ_no(lg_grp, ndelta, lg_delta) |
| #define SC(index, lg_grp, lg_delta, ndelta, psz, bin, pgs, lg_delta_lookup) \ |
| PSZ_##psz(lg_grp, ndelta, lg_delta) |
| SIZE_CLASSES |
| #undef PSZ_yes |
| #undef PSZ_no |
| #undef SC |
| (LARGE_MAXCLASS + PAGE) |
| }; |
| |
| JEMALLOC_ALIGNED(CACHELINE) |
| const size_t sz_index2size_tab[NSIZES] = { |
| #define SC(index, lg_grp, lg_delta, ndelta, psz, bin, pgs, lg_delta_lookup) \ |
| ((ZU(1)<<lg_grp) + (ZU(ndelta)<<lg_delta)), |
| SIZE_CLASSES |
| #undef SC |
| }; |
| |
| JEMALLOC_ALIGNED(CACHELINE) |
| const uint8_t sz_size2index_tab[] = { |
| #if LG_TINY_MIN == 0 |
| /* The div module doesn't support division by 1. */ |
| #error "Unsupported LG_TINY_MIN" |
| #define S2B_0(i) i, |
| #elif LG_TINY_MIN == 1 |
| #warning "Dangerous LG_TINY_MIN" |
| #define S2B_1(i) i, |
| #elif LG_TINY_MIN == 2 |
| #warning "Dangerous LG_TINY_MIN" |
| #define S2B_2(i) i, |
| #elif LG_TINY_MIN == 3 |
| #define S2B_3(i) i, |
| #elif LG_TINY_MIN == 4 |
| #define S2B_4(i) i, |
| #elif LG_TINY_MIN == 5 |
| #define S2B_5(i) i, |
| #elif LG_TINY_MIN == 6 |
| #define S2B_6(i) i, |
| #elif LG_TINY_MIN == 7 |
| #define S2B_7(i) i, |
| #elif LG_TINY_MIN == 8 |
| #define S2B_8(i) i, |
| #elif LG_TINY_MIN == 9 |
| #define S2B_9(i) i, |
| #elif LG_TINY_MIN == 10 |
| #define S2B_10(i) i, |
| #elif LG_TINY_MIN == 11 |
| #define S2B_11(i) i, |
| #else |
| #error "Unsupported LG_TINY_MIN" |
| #endif |
| #if LG_TINY_MIN < 1 |
| #define S2B_1(i) S2B_0(i) S2B_0(i) |
| #endif |
| #if LG_TINY_MIN < 2 |
| #define S2B_2(i) S2B_1(i) S2B_1(i) |
| #endif |
| #if LG_TINY_MIN < 3 |
| #define S2B_3(i) S2B_2(i) S2B_2(i) |
| #endif |
| #if LG_TINY_MIN < 4 |
| #define S2B_4(i) S2B_3(i) S2B_3(i) |
| #endif |
| #if LG_TINY_MIN < 5 |
| #define S2B_5(i) S2B_4(i) S2B_4(i) |
| #endif |
| #if LG_TINY_MIN < 6 |
| #define S2B_6(i) S2B_5(i) S2B_5(i) |
| #endif |
| #if LG_TINY_MIN < 7 |
| #define S2B_7(i) S2B_6(i) S2B_6(i) |
| #endif |
| #if LG_TINY_MIN < 8 |
| #define S2B_8(i) S2B_7(i) S2B_7(i) |
| #endif |
| #if LG_TINY_MIN < 9 |
| #define S2B_9(i) S2B_8(i) S2B_8(i) |
| #endif |
| #if LG_TINY_MIN < 10 |
| #define S2B_10(i) S2B_9(i) S2B_9(i) |
| #endif |
| #if LG_TINY_MIN < 11 |
| #define S2B_11(i) S2B_10(i) S2B_10(i) |
| #endif |
| #define S2B_no(i) |
| #define SC(index, lg_grp, lg_delta, ndelta, psz, bin, pgs, lg_delta_lookup) \ |
| S2B_##lg_delta_lookup(index) |
| SIZE_CLASSES |
| #undef S2B_3 |
| #undef S2B_4 |
| #undef S2B_5 |
| #undef S2B_6 |
| #undef S2B_7 |
| #undef S2B_8 |
| #undef S2B_9 |
| #undef S2B_10 |
| #undef S2B_11 |
| #undef S2B_no |
| #undef SC |
| }; |