summaryrefslogtreecommitdiff
path: root/libc/stdlib/malloc
AgeCommit message (Collapse)Author
2002-10-09* Add support for uClinux's broken munmap, contingent onMiles Bader
__UCLIBC_UCLINUX_BROKEN_MUNMAP__ (which is currently not defined anywhere). This makes other cases a tiny bit less efficient too. * Move the malloc lock into the heap structure (locking is still done at the malloc level though, not by the heap functions). * Initialize the malloc heap to contain a tiny initial static free-area so that programs that only do a very little allocation won't ever call mmap.
2002-09-13(__heap_check_failure): New function.Miles Bader
(__heap_check): Add more checks. Use `__heap_check_failure'.
2002-09-09(realloc): Record the correct size in the malloc header in the caseMiles Bader
where we extended the existing allocation, and got back more than we asked for from the heap.
2002-09-06Initial checkin.Miles Bader
2002-09-06Update debugging hooks.Miles Bader
2002-09-04(free):Miles Bader
Update debug statement. Update to use __heap_delete and __heap_is_empty.
2002-09-04(__heap_delete): Renamed from `__heap_unlink_free_area'.Miles Bader
(__heap_free_area_alloc): Use __heap_delete. (__heap_is_empty): New macro.
2002-08-30Doc fix.Miles Bader
2002-08-30(__heap_free): Tighten up the inner loop, and make the code more readable.Miles Bader
2002-08-30Use `likely' & `unlikely' instead of the `__malloc_'-prefixed versions.Miles Bader
2002-08-30(likely, unlikely): New macros.Miles Bader
2002-08-30(likely, unlikely): New macros.Miles Bader
(__malloc_likely, __malloc_unlikely): Macros removed.
2002-08-19(CSRC): Make contents source files, not object files.Miles Bader
2002-08-19(CSRC): Add `memalign.c'.Miles Bader
2002-08-19Initial checkin.Miles Bader
2002-08-19(realloc): Follow new arg conventions of MALLOC_SET_SIZE.Miles Bader
2002-08-19(malloc): Use MALLOC_SETUP.Miles Bader
2002-08-19(MALLOC_SETUP): New macro.Miles Bader
(MALLOC_SET_SIZE): Take the base-address of the block, not the user-address. (MALLOC_ADDR): Macro removed.
2002-08-14Use __malloc_unlikely instead of `likely'.Miles Bader
2002-08-14Add flow-control hints with __malloc_likely and __malloc_unlikely.Miles Bader
2002-08-14(__malloc_likely, __malloc_unlikely): New macros.Miles Bader
2002-08-14Handle zero NEW_SIZE case.Miles Bader
2002-08-13Use `return' for null pointers, to avoid a giant block holding the restMiles Bader
of the function.
2002-08-07Per suggestion from Miles Bader, move calloc.c to libc/stdlib.Eric Andersen
Also, Manuel notices that I forgot to check for when nmemb=0, which would result in a segfault, so fix that case as well. -Erik
2002-08-06Unify calloc (its the same thing regardless of the underlyingEric Andersen
malloc implementation). Fix problem reported to bugtraq about problems with integer overflow that can occur during the computation of the memory region size by calloc (and similar functions) which could result in a subsequent buffer overflow. -Erik
2002-08-01Use MALLOC_REALLOC_MIN_FREE_SIZE.Miles Bader
2002-08-01(MALLOC_REALLOC_MIN_FREE_SIZE): New macro.Miles Bader
Enable debugging if MALLOC_DEBUGGING is defined.
2002-08-01(HEAP_MIN_SIZE): New macro.Miles Bader
(HEAP_MIN_FREE_AREA_SIZE): Increase size. Enable debugging if HEAP_DEBUGGING is defined.
2002-07-31In the allocate-and-copy case, don't include the malloc header in ourMiles Bader
size calculations.
2002-07-31Update debugging printfs.Miles Bader
2002-07-31Account for MALLOC_HEADER_SIZE when calculating new size.Miles Bader
2002-07-31Use MALLOC_HEADER_SIZE.Miles Bader
2002-07-31(MALLOC_HEADER_SIZE): New macro.Miles Bader
(MALLOC_BASE, MALLOC_ADDR): Use it.
2002-07-30Make sure NEW_SIZE is a multiple of HEAP_GRANULARITY.Miles Bader
Calculate amount freed when shrinking correctly.
2002-07-30Update the size of grown/shrunk allocations.Miles Bader
MALLOC_SET_SIZE now takes the user-address rather than the base-address.
2002-07-30MALLOC_SET_SIZE now takes the user-address rather than the base-address.Miles Bader
2002-07-30Define MALLOC_SET_SIZE to take the user-address rather than the base-address.Miles Bader
2002-07-30Implement shrinking.Miles Bader
Fix bug when growing an allocation. Use new malloc header macros.
2002-07-30Use new malloc header macros.Miles Bader
2002-07-30Add macros to abstract the malloc header format a bit.Miles Bader
2002-07-25Size tweaks.Miles Bader
2002-07-25Miscellaneous tidying-up.Miles Bader
2002-07-25Redo the locking, so that it may actually work. Now locking is done atMiles Bader
the malloc/free level, not within the heap abstraction, and there's a separate lock to control sbrk access. Also, get rid of the separate `unmap_free_area' function in free.c, and just put the code in the `free' function directly, which saves a bunch of space (even compared to using an inline function) for some reason.
2002-07-24Factor out some common code sequences into inline functions.Miles Bader
2002-07-24Misc small cleanups.Miles Bader
2002-07-24Remove, since it's entirely incorrectMiles Bader
2002-07-23* Automatically try to unmap heap free-areas when they get very big.Miles Bader
* Instead of using mmap/munmap directly for large allocations, just use the heap for everything (this is reasonable now that heap memory can be unmapped). * Use sbrk instead of mmap/munmap on systems with an MMU.
2002-07-19Doc fix.Miles Bader
2002-07-19Rename mutex stuff to use heap-specific names.Miles Bader
Doc fix.
2002-07-18Miles Bader implemented a new mmap based malloc which is muchEric Andersen
smarter than the old "malloc-simple", and actually works, unlike the old "malloc". So kill the old "malloc-simple" and the old "malloc" and replace them with Miles' new malloc implementation. Update Config files to match. Thanks Miles!