Lines Matching refs:block
515 __malloc_size_t block, blocks, lastblocks, start; local
568 block = BLOCK (result);
569 if (--_heapinfo[block].busy.info.frag.nfree != 0)
570 _heapinfo[block].busy.info.frag.first = (unsigned long int)
600 block = BLOCK (result);
601 _heapinfo[block].busy.type = log;
602 _heapinfo[block].busy.info.frag.nfree = i - 1;
603 _heapinfo[block].busy.info.frag.first = i - 1;
617 start = block = _heapindex;
618 while (_heapinfo[block].free.size < blocks)
620 block = _heapinfo[block].free.next;
621 if (block == start)
626 block = _heapinfo[0].free.prev;
627 lastblocks = _heapinfo[block].free.size;
628 if (_heaplimit != 0 && block + lastblocks == _heaplimit &&
629 (*__morecore) (0) == ADDRESS (block + lastblocks) &&
635 block = _heapinfo[0].free.prev;
636 _heapinfo[block].free.size += (blocks - lastblocks);
643 block = BLOCK (result);
644 _heapinfo[block].busy.type = 0;
645 _heapinfo[block].busy.info.size = blocks;
654 result = ADDRESS (block);
655 if (_heapinfo[block].free.size > blocks)
659 _heapinfo[block + blocks].free.size
660 = _heapinfo[block].free.size - blocks;
661 _heapinfo[block + blocks].free.next
662 = _heapinfo[block].free.next;
663 _heapinfo[block + blocks].free.prev
664 = _heapinfo[block].free.prev;
665 _heapinfo[_heapinfo[block].free.prev].free.next
666 = _heapinfo[_heapinfo[block].free.next].free.prev
667 = _heapindex = block + blocks;
673 _heapinfo[_heapinfo[block].free.next].free.prev
674 = _heapinfo[block].free.prev;
675 _heapinfo[_heapinfo[block].free.prev].free.next
676 = _heapindex = _heapinfo[block].free.next;
680 _heapinfo[block].busy.type = 0;
681 _heapinfo[block].busy.info.size = blocks;
690 _heapinfo[block + blocks].busy.info.size = -blocks;
764 __malloc_size_t block, blocks; local
768 block = BLOCK (ptr);
770 type = _heapinfo[block].busy.type;
776 _bytes_used -= _heapinfo[block].busy.info.size * BLOCKSIZE;
777 _bytes_free += _heapinfo[block].busy.info.size * BLOCKSIZE;
783 if (i > block)
784 while (i > block)
790 while (i > 0 && i < block);
795 if (block == i + _heapinfo[i].free.size)
798 _heapinfo[i].free.size += _heapinfo[block].busy.info.size;
799 block = i;
804 _heapinfo[block].free.size = _heapinfo[block].busy.info.size;
805 _heapinfo[block].free.next = _heapinfo[i].free.next;
806 _heapinfo[block].free.prev = i;
807 _heapinfo[i].free.next = block;
808 _heapinfo[_heapinfo[block].free.next].free.prev = block;
815 if (block + _heapinfo[block].free.size == _heapinfo[block].free.next)
817 _heapinfo[block].free.size
818 += _heapinfo[_heapinfo[block].free.next].free.size;
819 _heapinfo[block].free.next
820 = _heapinfo[_heapinfo[block].free.next].free.next;
821 _heapinfo[_heapinfo[block].free.next].free.prev = block;
826 blocks = _heapinfo[block].free.size;
827 if (blocks >= FINAL_FREE_BLOCKS && block + blocks == _heaplimit
828 && (*__morecore) (0) == ADDRESS (block + blocks))
833 _heapinfo[_heapinfo[block].free.prev].free.next
834 = _heapinfo[block].free.next;
835 _heapinfo[_heapinfo[block].free.next].free.prev
836 = _heapinfo[block].free.prev;
837 block = _heapinfo[block].free.prev;
843 _heapindex = block;
854 prev = (struct list *) ((char *) ADDRESS (block) +
855 (_heapinfo[block].busy.info.frag.first << type));
857 if (_heapinfo[block].busy.info.frag.nfree == (BLOCKSIZE >> type) - 1)
867 _heapinfo[block].busy.type = 0;
868 _heapinfo[block].busy.info.size = 1;
876 free (ADDRESS (block));
878 else if (_heapinfo[block].busy.info.frag.nfree != 0)
889 ++_heapinfo[block].busy.info.frag.nfree;
897 _heapinfo[block].busy.info.frag.nfree = 1;
898 _heapinfo[block].busy.info.frag.first = (unsigned long int)
1090 __malloc_size_t block, blocks, oldlimit; local
1103 block = BLOCK (ptr);
1105 type = _heapinfo[block].busy.type;
1124 if (blocks < _heapinfo[block].busy.info.size)
1128 _heapinfo[block + blocks].busy.type = 0;
1129 _heapinfo[block + blocks].busy.info.size
1130 = _heapinfo[block].busy.info.size - blocks;
1131 _heapinfo[block].busy.info.size = blocks;
1136 _free_internal (ADDRESS (block + blocks));
1139 else if (blocks == _heapinfo[block].busy.info.size)
1147 blocks = _heapinfo[block].busy.info.size;
1159 if (_heapindex == block)
1163 __ptr_t previous = malloc ((block - _heapindex) * BLOCKSIZE);