diff options
Diffstat (limited to 'libc/stdlib/malloc')
| -rw-r--r-- | libc/stdlib/malloc/heap.h | 26 | ||||
| -rw-r--r-- | libc/stdlib/malloc/heap_alloc.c | 6 | ||||
| -rw-r--r-- | libc/stdlib/malloc/heap_alloc_at.c | 6 | ||||
| -rw-r--r-- | libc/stdlib/malloc/heap_append_free.c | 6 | ||||
| -rw-r--r-- | libc/stdlib/malloc/heap_free.c | 6 | 
5 files changed, 26 insertions, 24 deletions
diff --git a/libc/stdlib/malloc/heap.h b/libc/stdlib/malloc/heap.h index 74b56603b..0d6465050 100644 --- a/libc/stdlib/malloc/heap.h +++ b/libc/stdlib/malloc/heap.h @@ -1,5 +1,5 @@  /* - * libc/stdlib/malloc-zarg/heap.h -- heap allocator used for malloc + * libc/stdlib/malloc/heap.h -- heap allocator used for malloc   *   *  Copyright (C) 2002  NEC Corporation   *  Copyright (C) 2002  Miles Bader <miles@gnu.org> @@ -16,16 +16,16 @@  #ifdef __UCLIBC_HAS_THREADS__  #include <pthread.h> -typedef pthread_mutex_t mutex_t; -# define MUTEX_INITIALIZER  PTHREAD_MUTEX_INITIALIZER -# define mutex_lock(x)	    pthread_mutex_lock(&(x)) -# define mutex_unlock(x)    pthread_mutex_unlock(&(x)); +typedef pthread_mutex_t heap_mutex_t; +# define HEAP_MUTEX_INIT	PTHREAD_MUTEX_INITIALIZER +# define __heap_lock(heap)	pthread_mutex_lock (&(heap)->lock) +# define __heap_unlock(heap)	pthread_mutex_unlock (&(heap)->lock);  #else -/* Mutex operations are currently a nop.  */ -typedef int mutex_t; -# define MUTEX_INITIALIZER 0 -# define mutex_lock(x) -# define mutex_unlock(x) +/* Without threads, Mutex operations are a nop.  */ +typedef int heap_mutex_t; +# define HEAP_MUTEX_INIT	0 +# define __heap_lock(heap) +# define __heap_unlock(heap)  #endif @@ -36,13 +36,15 @@ typedef int mutex_t;  #define HEAP_GRANULARITY	(sizeof (double)) +/* A heap is a collection of memory blocks, from which smaller blocks +   of memory can be allocated.  */  struct heap  {    struct heap_free_area *free_areas; -  mutex_t lock; +  heap_mutex_t lock;  }; -#define HEAP_INIT 	{ 0, MUTEX_INITIALIZER } +#define HEAP_INIT 	{ 0, HEAP_MUTEX_INIT }  /* A free-list area `header'.  These are actually stored at the _ends_ of diff --git a/libc/stdlib/malloc/heap_alloc.c b/libc/stdlib/malloc/heap_alloc.c index 22591d613..d0e1d752a 100644 --- a/libc/stdlib/malloc/heap_alloc.c +++ b/libc/stdlib/malloc/heap_alloc.c @@ -1,5 +1,5 @@  /* - * libc/stdlib/malloc-zarg/heap_alloc.c -- allocate from a heap + * libc/stdlib/malloc/heap_alloc.c -- allocate memory from a heap   *   *  Copyright (C) 2002  NEC Corporation   *  Copyright (C) 2002  Miles Bader <miles@gnu.org> @@ -33,7 +33,7 @@ __heap_alloc (struct heap *heap, size_t *size)         we must make sure that every allocated block can hold one.  */      _size = HEAP_ADJUST_SIZE (sizeof (struct heap_free_area)); -  mutex_lock (heap->lock); +  __heap_lock (heap);    HEAP_DEBUG (heap, "before __heap_alloc"); @@ -49,7 +49,7 @@ __heap_alloc (struct heap *heap, size_t *size)    HEAP_DEBUG (heap, "after __heap_alloc"); -  mutex_unlock (heap->lock); +  __heap_unlock (heap);    return mem;  } diff --git a/libc/stdlib/malloc/heap_alloc_at.c b/libc/stdlib/malloc/heap_alloc_at.c index 8ee925488..4047697c5 100644 --- a/libc/stdlib/malloc/heap_alloc_at.c +++ b/libc/stdlib/malloc/heap_alloc_at.c @@ -1,5 +1,5 @@  /* - * libc/stdlib/malloc-zarg/heap_alloc_at.c -- allocate at a specific address + * libc/stdlib/malloc/heap_alloc_at.c -- allocate at a specific address   *   *  Copyright (C) 2002  NEC Corporation   *  Copyright (C) 2002  Miles Bader <miles@gnu.org> @@ -26,7 +26,7 @@ __heap_alloc_at (struct heap *heap, void *mem, size_t size)    size = HEAP_ADJUST_SIZE (size); -  mutex_lock (heap->lock); +  __heap_lock (heap);    HEAP_DEBUG (heap, "before __heap_alloc_at"); @@ -45,7 +45,7 @@ __heap_alloc_at (struct heap *heap, void *mem, size_t size)    HEAP_DEBUG (heap, "after __heap_alloc_at"); -  mutex_unlock (heap->lock); +  __heap_unlock (heap);    return alloced;  } diff --git a/libc/stdlib/malloc/heap_append_free.c b/libc/stdlib/malloc/heap_append_free.c index 42f0cf5bb..d67f46495 100644 --- a/libc/stdlib/malloc/heap_append_free.c +++ b/libc/stdlib/malloc/heap_append_free.c @@ -1,5 +1,5 @@  /* - * libc/stdlib/malloc-zarg/heap_append_free.c -- append to heap free area + * libc/stdlib/malloc/heap_append_free.c -- append memory to a heap free area   *   *  Copyright (C) 2002  NEC Corporation   *  Copyright (C) 2002  Miles Bader <miles@gnu.org> @@ -25,7 +25,7 @@ __heap_append_free (struct heap *heap, void *mem, size_t size)    int success = 0;    struct heap_free_area *fa; -  mutex_lock (heap->lock); +  __heap_lock (heap);    HEAP_DEBUG (heap, "before __heap_append_free"); @@ -65,7 +65,7 @@ __heap_append_free (struct heap *heap, void *mem, size_t size)    HEAP_DEBUG (heap, "after __heap_append_free"); -  mutex_unlock (heap->lock); +  __heap_unlock (heap);    return success;  } diff --git a/libc/stdlib/malloc/heap_free.c b/libc/stdlib/malloc/heap_free.c index 20ef65572..d8eaf7e66 100644 --- a/libc/stdlib/malloc/heap_free.c +++ b/libc/stdlib/malloc/heap_free.c @@ -1,5 +1,5 @@  /* - * libc/stdlib/malloc-zarg/heap_free.c -- return memory to a heap + * libc/stdlib/malloc/heap_free.c -- return memory to a heap   *   *  Copyright (C) 2002  NEC Corporation   *  Copyright (C) 2002  Miles Bader <miles@gnu.org> @@ -23,7 +23,7 @@ __heap_free (struct heap *heap, void *mem, size_t size)    struct heap_free_area *prev_fa, *fa, *new_fa;    void *end = (char *)mem + size; -  mutex_lock (heap->lock); +  __heap_lock (heap);    HEAP_DEBUG (heap, "before __heap_free"); @@ -123,5 +123,5 @@ __heap_free (struct heap *heap, void *mem, size_t size)   done:    HEAP_DEBUG (heap, "after __heap_free"); -  mutex_unlock (heap->lock); +  __heap_unlock (heap);  }  | 
