Lines Matching refs:heap

95 __collector_mmgr_init_mutex_locks (Heap *heap)  in __collector_mmgr_init_mutex_locks()  argument
97 if (heap == NULL) in __collector_mmgr_init_mutex_locks()
99 if (__collector_mutex_trylock (&heap->lock)) in __collector_mmgr_init_mutex_locks()
107 __collector_mutex_init (&heap->lock); in __collector_mmgr_init_mutex_locks()
109 __collector_mutex_init (&heap->lock); in __collector_mmgr_init_mutex_locks()
159 Heap *heap; in __collector_newHeap() local
168 heap = (Heap*) chnk->hi; in __collector_newHeap()
169 heap->chain[0] = (void*) chnk; in __collector_newHeap()
170 __collector_mutex_init (&heap->lock); in __collector_newHeap()
171 return heap; in __collector_newHeap()
175 __collector_deleteHeap (Heap *heap) in __collector_deleteHeap() argument
177 if (heap == NULL) in __collector_deleteHeap()
180 for (Chunk *chnk = heap->chain[0]; chnk;) in __collector_deleteHeap()
189 __collector_allocCSize (Heap *heap, unsigned sz, int log) in __collector_allocCSize() argument
193 if (heap == NULL) in __collector_allocCSize()
200 __collector_mutex_lock (&heap->lock); in __collector_allocCSize()
211 if (heap->chain[idx] != NULL) in __collector_allocCSize()
213 res = heap->chain[idx]; in __collector_allocCSize()
214 heap->chain[idx] = *(void**) res; in __collector_allocCSize()
215 __collector_mutex_unlock (&heap->lock); in __collector_allocCSize()
225 __collector_mutex_unlock (&heap->lock); in __collector_allocCSize()
231 for (chnk = (Chunk*) heap->chain[0]; chnk; chnk = chnk->next) in __collector_allocCSize()
242 __collector_mutex_unlock (&heap->lock); in __collector_allocCSize()
246 chnk->next = (Chunk*) heap->chain[0]; in __collector_allocCSize()
247 heap->chain[0] = chnk; in __collector_allocCSize()
253 __collector_mutex_unlock (&heap->lock); in __collector_allocCSize()
261 __collector_freeCSize (Heap *heap, void *ptr, unsigned sz) in __collector_freeCSize() argument
263 if (heap == NULL || ptr == NULL) in __collector_freeCSize()
270 __collector_mutex_lock (&heap->lock); in __collector_freeCSize()
279 *(void**) ptr = heap->chain[idx]; in __collector_freeCSize()
280 heap->chain[idx] = ptr; in __collector_freeCSize()
284 __collector_mutex_unlock (&heap->lock); in __collector_freeCSize()
290 allocVSize_nolock (Heap *heap, unsigned sz) in allocVSize_nolock() argument
298 for (chnk = (Chunk*) heap->chain[0]; chnk; chnk = chnk->next) in allocVSize_nolock()
308 chnk->next = (Chunk*) heap->chain[0]; in allocVSize_nolock()
309 heap->chain[0] = chnk; in allocVSize_nolock()
318 __collector_allocVSize (Heap *heap, unsigned sz) in __collector_allocVSize() argument
321 if (heap == NULL) in __collector_allocVSize()
328 __collector_mutex_lock (&heap->lock); in __collector_allocVSize()
329 res = allocVSize_nolock (heap, sz); in __collector_allocVSize()
330 __collector_mutex_unlock (&heap->lock); in __collector_allocVSize()
342 __collector_reallocVSize (Heap *heap, void *ptr, unsigned newsz) in __collector_reallocVSize() argument
346 if (heap == NULL) in __collector_reallocVSize()
349 return __collector_allocVSize (heap, newsz); in __collector_reallocVSize()
355 __collector_mutex_lock (&heap->lock); in __collector_reallocVSize()
358 for (chnk = (Chunk*) heap->chain[0]; chnk; chnk = chnk->next) in __collector_reallocVSize()
365 __collector_mutex_unlock (&heap->lock); in __collector_reallocVSize()
374 __collector_mutex_unlock (&heap->lock); in __collector_reallocVSize()
379 res = allocVSize_nolock (heap, newsz); in __collector_reallocVSize()
393 __collector_mutex_unlock (&heap->lock); in __collector_reallocVSize()