MCPcopy Create free account
hub / github.com/beefytech/Beef / size_class

Function size_class

BeefRT/JEMalloc/src/sc.c:53–82  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51}
52
53static void
54size_class(
55 /* Output. */
56 sc_t *sc,
57 /* Configuration decisions. */
58 int lg_max_lookup, int lg_page, int lg_ngroup,
59 /* Inputs specific to the size class. */
60 int index, int lg_base, int lg_delta, int ndelta) {
61 sc->index = index;
62 sc->lg_base = lg_base;
63 sc->lg_delta = lg_delta;
64 sc->ndelta = ndelta;
65 size_t size = reg_size_compute(lg_base, lg_delta, ndelta);
66 sc->psz = (size % (ZU(1) << lg_page) == 0);
67 if (index == 0) {
68 assert(!sc->psz);
69 }
70 if (size < (ZU(1) << (lg_page + lg_ngroup))) {
71 sc->bin = true;
72 sc->pgs = slab_size(lg_page, lg_base, lg_delta, ndelta);
73 } else {
74 sc->bin = false;
75 sc->pgs = 0;
76 }
77 if (size <= (ZU(1) << lg_max_lookup)) {
78 sc->lg_delta_lookup = lg_delta;
79 } else {
80 sc->lg_delta_lookup = 0;
81 }
82}
83
84static void
85size_classes(

Callers 1

size_classesFunction · 0.85

Calls 2

reg_size_computeFunction · 0.85
slab_sizeFunction · 0.85

Tested by

no test coverage detected