summaryrefslogtreecommitdiffstats
path: root/libc/stdlib/malloc
Commit message (Collapse)AuthorAgeFilesLines
...
* Use __heap_[un]lock instead of __malloc_[un]lock.Miles Bader2002-10-151-4/+4
|
* Get rid of old malloc lock stuff.Miles Bader2002-10-151-8/+0
|
* Fix locking to not deadlock when __UCLIBC_UCLINUX_BROKEN_MUNMAP__ is defined.Miles Bader2002-10-152-34/+32
|
* * Add support for uClinux's broken munmap, contingent onMiles Bader2002-10-094-29/+264
| | | | | | | | | __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.
* (__heap_check_failure): New function.Miles Bader2002-09-131-16/+67
| | | | (__heap_check): Add more checks. Use `__heap_check_failure'.
* (realloc): Record the correct size in the malloc header in the caseMiles Bader2002-09-091-1/+1
| | | | | where we extended the existing allocation, and got back more than we asked for from the heap.
* Initial checkin.Miles Bader2002-09-061-0/+86
|
* Update debugging hooks.Miles Bader2002-09-063-30/+20
|
* (free):Miles Bader2002-09-041-5/+5
| | | | | Update debug statement. Update to use __heap_delete and __heap_is_empty.
* (__heap_delete): Renamed from `__heap_unlink_free_area'.Miles Bader2002-09-041-3/+6
| | | | | (__heap_free_area_alloc): Use __heap_delete. (__heap_is_empty): New macro.
* Doc fix.Miles Bader2002-08-301-1/+1
|
* (__heap_free): Tighten up the inner loop, and make the code more readable.Miles Bader2002-08-301-29/+24
|
* Use `likely' & `unlikely' instead of the `__malloc_'-prefixed versions.Miles Bader2002-08-302-5/+5
|
* (likely, unlikely): New macros.Miles Bader2002-08-301-0/+12
|
* (likely, unlikely): New macros.Miles Bader2002-08-301-6/+8
| | | | (__malloc_likely, __malloc_unlikely): Macros removed.
* (CSRC): Make contents source files, not object files.Miles Bader2002-08-191-2/+2
|
* (CSRC): Add `memalign.c'.Miles Bader2002-08-191-2/+2
|
* Initial checkin.Miles Bader2002-08-191-0/+94
|
* (realloc): Follow new arg conventions of MALLOC_SET_SIZE.Miles Bader2002-08-191-2/+2
|
* (malloc): Use MALLOC_SETUP.Miles Bader2002-08-191-3/+2
|
* (MALLOC_SETUP): New macro.Miles Bader2002-08-191-5/+6
| | | | | (MALLOC_SET_SIZE): Take the base-address of the block, not the user-address. (MALLOC_ADDR): Macro removed.
* Use __malloc_unlikely instead of `likely'.Miles Bader2002-08-141-1/+4
|
* Add flow-control hints with __malloc_likely and __malloc_unlikely.Miles Bader2002-08-141-5/+7
|
* (__malloc_likely, __malloc_unlikely): New macros.Miles Bader2002-08-141-0/+10
|
* Handle zero NEW_SIZE case.Miles Bader2002-08-141-45/+54
|
* Use `return' for null pointers, to avoid a giant block holding the restMiles Bader2002-08-131-95/+95
| | | | of the function.
* Per suggestion from Miles Bader, move calloc.c to libc/stdlib.Eric Andersen2002-08-071-1/+2
| | | | | | 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
* Unify calloc (its the same thing regardless of the underlyingEric Andersen2002-08-062-34/+2
| | | | | | | | 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
* Use MALLOC_REALLOC_MIN_FREE_SIZE.Miles Bader2002-08-011-1/+1
|
* (MALLOC_REALLOC_MIN_FREE_SIZE): New macro.Miles Bader2002-08-011-2/+8
| | | | Enable debugging if MALLOC_DEBUGGING is defined.
* (HEAP_MIN_SIZE): New macro.Miles Bader2002-08-011-6/+15
| | | | | (HEAP_MIN_FREE_AREA_SIZE): Increase size. Enable debugging if HEAP_DEBUGGING is defined.
* In the allocate-and-copy case, don't include the malloc header in ourMiles Bader2002-07-311-2/+2
| | | | size calculations.
* Update debugging printfs.Miles Bader2002-07-313-4/+4
|
* Account for MALLOC_HEADER_SIZE when calculating new size.Miles Bader2002-07-311-3/+4
|
* Use MALLOC_HEADER_SIZE.Miles Bader2002-07-311-1/+1
|
* (MALLOC_HEADER_SIZE): New macro.Miles Bader2002-07-311-2/+6
| | | | (MALLOC_BASE, MALLOC_ADDR): Use it.
* Make sure NEW_SIZE is a multiple of HEAP_GRANULARITY.Miles Bader2002-07-301-2/+2
| | | | Calculate amount freed when shrinking correctly.
* Update the size of grown/shrunk allocations.Miles Bader2002-07-301-16/+16
| | | | MALLOC_SET_SIZE now takes the user-address rather than the base-address.
* MALLOC_SET_SIZE now takes the user-address rather than the base-address.Miles Bader2002-07-301-2/+1
|
* Define MALLOC_SET_SIZE to take the user-address rather than the base-address.Miles Bader2002-07-301-2/+2
|
* Implement shrinking.Miles Bader2002-07-301-6/+19
| | | | | Fix bug when growing an allocation. Use new malloc header macros.
* Use new malloc header macros.Miles Bader2002-07-302-5/+6
|
* Add macros to abstract the malloc header format a bit.Miles Bader2002-07-301-1/+22
|
* Size tweaks.Miles Bader2002-07-253-15/+17
|
* Miscellaneous tidying-up.Miles Bader2002-07-252-13/+10
|
* Redo the locking, so that it may actually work. Now locking is done atMiles Bader2002-07-258-130/+186
| | | | | | | | | 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.
* Factor out some common code sequences into inline functions.Miles Bader2002-07-242-53/+74
|
* Misc small cleanups.Miles Bader2002-07-243-4/+6
|
* Remove, since it's entirely incorrectMiles Bader2002-07-241-33/+0
|
* * Automatically try to unmap heap free-areas when they get very big.Miles Bader2002-07-238-190/+234
| | | | | | | | * 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.