Lines Matching full:blk

47 	rh_block_t *block, *blk;
73 for (i = 0, blk = block; i < info->max_blocks; i++, blk++)
74 fixup(blks, blke, delta, &blk->list);
91 blk = block + info->max_blocks - new_blocks;
92 for (i = 0; i < new_blocks; i++, blk++)
93 list_add(&blk->list, &info->empty_list);
123 rh_block_t *blk;
133 blk = list_entry(info->empty_list.next, rh_block_t, list);
134 list_del_init(&blk->list);
138 blk->start = 0;
139 blk->size = 0;
140 blk->owner = NULL;
142 return blk;
145 static inline void release_slot(rh_info_t * info, rh_block_t * blk)
147 list_add(&blk->list, &info->empty_list);
153 rh_block_t *blk;
173 blk = list_entry(l, rh_block_t, list);
175 bs = blk->start;
176 be = bs + blk->size;
179 next = blk;
182 before = blk;
185 after = blk;
234 rh_block_t *blk;
239 blk = list_entry(l, rh_block_t, list);
240 if (blk->start > blkn->start) {
241 list_add_tail(&blkn->list, &blk->list);
304 rh_block_t *blk;
323 for (i = 0, blk = block; i < max_blocks; i++, blk++)
324 list_add(&blk->list, &info->empty_list);
331 rh_block_t *blk;
358 blk = get_slot(info);
359 blk->start = start;
360 blk->size = size;
361 blk->owner = NULL;
363 attach_free_block(info, blk);
373 rh_block_t *blk, *newblk;
394 blk = NULL;
396 blk = list_entry(l, rh_block_t, list);
398 bs = blk->start;
399 be = blk->start + blk->size;
402 blk = NULL;
405 if (blk == NULL)
411 list_del(&blk->list);
412 release_slot(info, blk);
416 /* blk still in free list, with updated start and/or size */
419 blk->start += size;
420 blk->size -= size;
424 blk->size = s - bs;
431 list_add(&newblk->list, &blk->list);
445 rh_block_t *blk;
459 blk = NULL;
461 blk = list_entry(l, rh_block_t, list);
462 if (size <= blk->size) {
463 start = (blk->start + alignment - 1) & ~(alignment - 1);
464 if (start + size <= blk->start + blk->size)
467 blk = NULL;
470 if (blk == NULL)
474 if (blk->size == size) {
476 list_del(&blk->list);
477 newblk = blk;
481 sp_size = start - blk->start;
486 spblk->start = blk->start;
488 /* add before the blk */
489 list_add(&spblk->list, blk->list.prev);
495 /* blk still in free list, with updated start and size
497 blk->start = start + size;
498 blk->size -= sp_size + size;
499 /* No fragment in the end, remove blk */
500 if (blk->size == 0) {
501 list_del(&blk->list);
502 release_slot(info, blk);
530 rh_block_t *blk, *newblk1, *newblk2;
551 blk = NULL;
553 blk = list_entry(l, rh_block_t, list);
555 bs = blk->start;
556 be = blk->start + blk->size;
559 blk = NULL;
562 if (blk == NULL)
568 list_del(&blk->list);
569 blk->owner = owner;
571 start = blk->start;
572 attach_taken_block(info, blk);
578 /* blk still in free list, with updated start and/or size */
581 blk->start += size;
582 blk->size -= size;
586 blk->size = s - bs;
593 list_add(&newblk2->list, &blk->list);
614 rh_block_t *blk, *blk2;
619 blk = NULL;
624 blk = blk2;
627 if (blk == NULL || start > (blk->start + blk->size))
631 list_del(&blk->list);
634 size = blk->size;
635 attach_free_block(info, blk);
643 rh_block_t *blk;
665 blk = list_entry(l, rh_block_t, list);
667 stats->start = blk->start;
668 stats->size = blk->size;
669 stats->owner = blk->owner;
681 rh_block_t *blk, *blk2;
686 blk = NULL;
691 blk = blk2;
694 if (blk == NULL || start > (blk->start + blk->size))
697 blk->owner = owner;
698 size = blk->size;
740 void rh_dump_blk(rh_info_t * info, rh_block_t * blk)
743 "blk @0x%p: 0x%lx-0x%lx (%u)\n",
744 blk, blk->start, blk->start + blk->size, blk->size);