Lines Matching defs:units
78 * slob_block has a field 'units', which indicates size of block if +ve,
92 slobidx_t units;
152 s[0].units = size;
153 s[1].units = offset;
155 s[0].units = -offset;
163 if (s->units > 0)
164 return s->units;
176 if (s[0].units < 0)
177 next = -s[0].units;
179 next = s[1].units;
241 int delta = 0, units = SLOB_UNITS(size);
260 if (avail >= units + delta) { /* room enough? */
273 if (avail == units) { /* exact fit? unlink. */
280 set_slob(prev, slob_units(prev), cur + units);
282 sp->freelist = cur + units;
283 set_slob(cur + units, avail - units, next);
286 sp->units -= units;
287 if (!sp->units) {
330 if (sp->units < SLOB_UNITS(size))
365 sp->units = SLOB_UNITS(PAGE_SIZE);
386 slobidx_t units;
395 units = SLOB_UNITS(size);
399 if (sp->units + units == SLOB_UNITS(PAGE_SIZE)) {
412 sp->units = units;
414 set_slob(b, units,
431 sp->units += units;
434 if (b + units == sp->freelist) {
435 units += slob_units(sp->freelist);
438 set_slob(b, units, sp->freelist);
448 if (!slob_last(prev) && b + units == next) {
449 units += slob_units(next);
450 set_slob(b, units, slob_next(next));
452 set_slob(b, units, next);
455 units = slob_units(b) + slob_units(prev);
456 set_slob(prev, units, slob_next(b));