Lines Matching defs:holdblk

48 static ssize_t freespace(struct holdblk *);
131 static struct holdblk **holdhead; /* pointer to array of head pointers */
332 struct holdblk *holdblk; /* head of right sized queue */
334 struct holdblk *newhold;
354 holdhead = (struct holdblk **)
355 malloc_unlocked(sizeof (struct holdblk *) *
373 holdblk = holdhead[nb / grain];
379 if ((holdblk != HGROUND) && (holdblk->lfreeq != LGROUND)) {
381 lblk = holdblk->lfreeq;
390 * the next space. If not, mark holdblk full,
391 * and move holdblk to the end of the queue
393 if (lblk < holdblk->unused) {
394 /* move to next holdblk, if this one full */
395 if ((holdblk->lfreeq =
399 holdblk->nexthblk;
401 } else if (((char *)holdblk->unused + nb) <
402 ((char *)holdblk + HOLDSZ(nb))) {
403 holdblk->unused = (struct lblk *)
404 ((char *)holdblk->unused+nb);
405 holdblk->lfreeq = holdblk->unused;
407 holdblk->unused = (struct lblk *)
408 ((char *)holdblk->unused+nb);
409 holdblk->lfreeq = LGROUND;
411 holdblk->nexthblk;
414 lblk->header.holder = (struct holdblk *)SETALL(holdblk);
417 newhold = (struct holdblk *)
423 if (holdblk != HGROUND) {
424 newhold->nexthblk = holdblk;
425 newhold->prevhblk = holdblk->prevhblk;
426 holdblk->prevhblk = newhold;
436 lblk->header.holder = (struct holdblk *)SETALL(newhold);
440 assert(((struct holdblk *)CLRALL(lblk->header.holder))->blksz >=
653 struct holdblk *holdblk; /* block holding blk */
654 struct holdblk *oldhead; /* former head of the hold block */
667 holdblk = lblk->header.holder;
668 if (!TESTBUSY(holdblk))
670 holdblk = (struct holdblk *)CLRALL(holdblk);
672 lblk->header.nextfree = SETSMAL(holdblk->lfreeq);
673 holdblk->lfreeq = lblk;
674 /* move holdblk to head of queue, if its not already there */
675 offset = holdblk->blksz / grain;
677 if (oldhead != holdblk) {
679 holdhead[offset] = holdblk;
680 holdblk->nexthblk->prevhblk = holdblk->prevhblk;
681 holdblk->prevhblk->nexthblk = holdblk->nexthblk;
683 holdblk->nexthblk = oldhead;
684 holdblk->prevhblk = oldhead->prevhblk;
685 oldhead->prevhblk = holdblk;
686 holdblk->prevhblk->nexthblk = holdblk;
768 cpysize = ((struct holdblk *)
959 struct holdblk *hblk; /* ptr to holding blocks */
1015 inf.hblkhd = (inf.smblks / numlblks) * sizeof (struct holdblk);
1035 freespace(struct holdblk *holdblk)
1042 lblk = CLRSMAL(holdblk->lfreeq);
1043 size = holdblk->blksz + sizeof (struct lblk) - sizeof (int);
1044 unused = CLRSMAL(holdblk->unused);
1050 space += ((char *)holdblk + HOLDSZ(size)) - (char *)unused;