diff options
Diffstat (limited to 'libc/stdlib/malloc/heap.h')
-rw-r--r-- | libc/stdlib/malloc/heap.h | 26 |
1 files changed, 14 insertions, 12 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 |