Lines Matching refs:holdblk
49 static ssize_t freespace(struct holdblk *);
132 static struct holdblk **holdhead; /* pointer to array of head pointers */
333 struct holdblk *holdblk; /* head of right sized queue */ in malloc_unlocked() local
335 struct holdblk *newhold; in malloc_unlocked()
355 holdhead = (struct holdblk **) in malloc_unlocked()
356 malloc_unlocked(sizeof (struct holdblk *) * in malloc_unlocked()
374 holdblk = holdhead[nb / grain]; in malloc_unlocked()
380 if ((holdblk != HGROUND) && (holdblk->lfreeq != LGROUND)) { in malloc_unlocked()
382 lblk = holdblk->lfreeq; in malloc_unlocked()
394 if (lblk < holdblk->unused) { in malloc_unlocked()
396 if ((holdblk->lfreeq = in malloc_unlocked()
400 holdblk->nexthblk; in malloc_unlocked()
402 } else if (((char *)holdblk->unused + nb) < in malloc_unlocked()
403 ((char *)holdblk + HOLDSZ(nb))) { in malloc_unlocked()
404 holdblk->unused = (struct lblk *) in malloc_unlocked()
405 ((char *)holdblk->unused+nb); in malloc_unlocked()
406 holdblk->lfreeq = holdblk->unused; in malloc_unlocked()
408 holdblk->unused = (struct lblk *) in malloc_unlocked()
409 ((char *)holdblk->unused+nb); in malloc_unlocked()
410 holdblk->lfreeq = LGROUND; in malloc_unlocked()
412 holdblk->nexthblk; in malloc_unlocked()
415 lblk->header.holder = (struct holdblk *)SETALL(holdblk); in malloc_unlocked()
418 newhold = (struct holdblk *) in malloc_unlocked()
424 if (holdblk != HGROUND) { in malloc_unlocked()
425 newhold->nexthblk = holdblk; in malloc_unlocked()
426 newhold->prevhblk = holdblk->prevhblk; in malloc_unlocked()
427 holdblk->prevhblk = newhold; in malloc_unlocked()
437 lblk->header.holder = (struct holdblk *)SETALL(newhold); in malloc_unlocked()
441 assert(((struct holdblk *)CLRALL(lblk->header.holder))->blksz >= in malloc_unlocked()
654 struct holdblk *holdblk; /* block holding blk */ in free_unlocked() local
655 struct holdblk *oldhead; /* former head of the hold block */ in free_unlocked()
668 holdblk = lblk->header.holder; in free_unlocked()
669 if (!TESTBUSY(holdblk)) in free_unlocked()
671 holdblk = (struct holdblk *)CLRALL(holdblk); in free_unlocked()
673 lblk->header.nextfree = SETSMAL(holdblk->lfreeq); in free_unlocked()
674 holdblk->lfreeq = lblk; in free_unlocked()
676 offset = holdblk->blksz / grain; in free_unlocked()
678 if (oldhead != holdblk) { in free_unlocked()
680 holdhead[offset] = holdblk; in free_unlocked()
681 holdblk->nexthblk->prevhblk = holdblk->prevhblk; in free_unlocked()
682 holdblk->prevhblk->nexthblk = holdblk->nexthblk; in free_unlocked()
684 holdblk->nexthblk = oldhead; in free_unlocked()
685 holdblk->prevhblk = oldhead->prevhblk; in free_unlocked()
686 oldhead->prevhblk = holdblk; in free_unlocked()
687 holdblk->prevhblk->nexthblk = holdblk; in free_unlocked()
769 cpysize = ((struct holdblk *) in realloc_unlocked()
969 struct holdblk *hblk; /* ptr to holding blocks */ in mallinfo()
1025 inf.hblkhd = (inf.smblks / numlblks) * sizeof (struct holdblk); in mallinfo()
1045 freespace(struct holdblk *holdblk) in freespace() argument
1052 lblk = CLRSMAL(holdblk->lfreeq); in freespace()
1053 size = holdblk->blksz + sizeof (struct lblk) - sizeof (int); in freespace()
1054 unused = CLRSMAL(holdblk->unused); in freespace()
1060 space += ((char *)holdblk + HOLDSZ(size)) - (char *)unused; in freespace()