Lines Matching +full:no +full:- +full:multiblock

3 /* DO NOT EDIT THIS FILE -- it is automagically generated.  -*- C -*- */
102 /* Re-allocate the previously allocated block
128 #define BLOCKIFY(SIZE) (((SIZE) + BLOCKSIZE - 1) / BLOCKSIZE)
138 /* Data structure giving per-block information. */
144 /* Zero for a large (multiblock) object, or positive giving the
173 /* Table indexed by block number giving per-block information. */
177 #define BLOCK(A) (((char *) (A) - _heapbase) / BLOCKSIZE + 1)
178 #define ADDRESS(B) ((__ptr_t) (((B) - 1) * BLOCKSIZE + _heapbase))
246 MCHECK_DISABLED = -1, /* Consistency checking is not turned on. */
273 __malloc_size_t bytes_used; /* Byte total of user-allocated chunks. */
422 adj = (unsigned long int) ((unsigned long int) ((char *) result -
426 adj = BLOCKSIZE - adj;
487 (*__morecore) (-size);
492 (newsize - heapsize) * sizeof (malloc_info));
523 expects `malloc (0)' to return non-NULL and breaks otherwise.
552 --size;
565 next->prev->next = next->next;
566 if (next->next != NULL)
567 next->next->prev = next->prev;
569 if (--_heapinfo[block].busy.info.frag.nfree != 0)
571 ((unsigned long int) ((char *) next->next - (char *) NULL)
577 --_chunks_free;
578 _bytes_free -= 1 << log;
582 /* No free fragments of the desired size, so get a new block
592 next->next = _fraghead[log].next;
593 next->prev = &_fraghead[log];
594 next->prev->next = next;
595 if (next->next != NULL)
596 next->next->prev = next;
602 _heapinfo[block].busy.info.frag.nfree = i - 1;
603 _heapinfo[block].busy.info.frag.first = i - 1;
605 _chunks_free += (BLOCKSIZE >> log) - 1;
606 _bytes_free += BLOCKSIZE - (1 << log);
607 _bytes_used -= BLOCKSIZE - (1 << log);
630 (morecore ((blocks - lastblocks) * BLOCKSIZE)) != NULL)
636 _heapinfo[block].free.size += (blocks - lastblocks);
637 _bytes_free += (blocks - lastblocks) * BLOCKSIZE;
660 = _heapinfo[block].free.size - blocks;
677 --_chunks_free;
684 _bytes_free -= blocks * BLOCKSIZE;
689 while (--blocks > 0)
690 _heapinfo[block + blocks].busy.info.size = -blocks;
775 --_chunks_used;
776 _bytes_used -= _heapinfo[block].busy.info.size * BLOCKSIZE;
822 --_chunks_free;
831 _heaplimit -= blocks;
832 (*__morecore) (-bytes);
838 --_chunks_free;
839 _bytes_free -= bytes;
848 --_chunks_used;
849 _bytes_used -= 1 << type;
857 if (_heapinfo[block].busy.info.frag.nfree == (BLOCKSIZE >> type) - 1)
863 next = next->next;
864 prev->prev->next = next;
866 next->prev = prev->prev;
873 _chunks_free -= BLOCKSIZE >> type;
874 _bytes_free -= BLOCKSIZE;
884 next->next = prev->next;
885 next->prev = prev;
886 prev->next = next;
887 if (next->next != NULL)
888 next->next->prev = next;
893 /* No fragments of this block are free, so link this
899 ((unsigned long int) ((char *) ptr - (char *) NULL)
901 prev->next = _fraghead[type].next;
902 prev->prev = &_fraghead[type];
903 prev->prev->next = prev;
904 if (prev->next != NULL)
905 prev->next->prev = prev;
921 for (l = _aligned_blocks; l != NULL; l = l->next)
922 if (l->aligned == ptr)
924 l->aligned = NULL; /* Mark the slot in the list as free. */
925 ptr = l->exact;
960 #include <gnu-stabs.h>
1033 /* If TO - FROM is large, then we should break the copy into
1034 nonoverlapping chunks of TO - FROM bytes each. However, if
1035 TO - FROM is small, then the bcopy function call overhead
1039 if (to - from < 64)
1042 *--endt = *--endf;
1049 endt -= (to - from);
1050 endf -= (to - from);
1055 bcopy (endf, endt, to - from);
1058 /* If SIZE wasn't a multiple of TO - FROM, there will be a
1060 (endt + (to - from)) - to, which is endt - from. */
1061 bcopy (from, to, endt - from);
1130 = _heapinfo[block].busy.info.size - blocks;
1140 /* No size change necessary. */
1163 __ptr_t previous = malloc ((block - _heapindex) * BLOCKSIZE);
1177 if (size > (__malloc_size_t) (1 << (type - 1)) &&
1283 if (result == (__ptr_t) -1)
1322 size = ((size + alignment - 1) / alignment) * alignment;
1327 adj = (unsigned long int) ((unsigned long int) ((char *) result -
1332 for (l = _aligned_blocks; l != NULL; l = l->next)
1333 if (l->aligned == NULL)
1344 l->next = _aligned_blocks;
1347 l->exact = result;
1348 result = l->aligned = (char *) result + alignment - adj;