Lines Matching defs:heap

13 #include <heap.h>
51 guarded_heap* heap;
74 RW_LOCK_INITIALIZER("guarded heap lock"),
87 GuardedHeapTraceEntry(guarded_heap* heap)
90 fHeap(heap)
101 Allocate(guarded_heap* heap, void* pageBase, uint32 flags)
103 GuardedHeapTraceEntry(heap),
112 out.Print("guarded heap allocate: heap: %p; page: %p; "
128 Free(guarded_heap* heap, void* pageBase)
130 GuardedHeapTraceEntry(heap),
138 out.Print("guarded heap free: heap: %p; page: %p", fHeap,
216 T(Allocate(area.heap,
251 T(Free(area.heap, (void*)(area.base + pageIndex * B_PAGE_SIZE)));
256 guarded_heap_pages_allocated(guarded_heap& heap, size_t pagesAllocated)
258 return (atomic_add((int32*)&heap.used_pages, pagesAllocated)
260 >= heap.page_count - HEAP_GROW_SIZE / B_PAGE_SIZE / 2;
321 grow = guarded_heap_pages_allocated(*area.heap, pagesNeeded);
330 guarded_heap_area_init(guarded_heap& heap, area_id id, void* baseAddress,
334 area->heap = &heap;
361 WriteLocker areaListWriteLocker(heap.lock);
362 area->next = heap.areas;
363 heap.areas = area;
364 heap.page_count += area->page_count;
371 guarded_heap_area_create(guarded_heap& heap, uint32 flags)
384 if (guarded_heap_area_init(heap, id, baseAddress, trySize, flags))
390 panic("failed to allocate a new heap area");
396 guarded_heap_add_area(guarded_heap& heap, int32 counter, uint32 flags)
403 if (atomic_test_and_set(&heap.area_creation_counter,
405 return guarded_heap_area_create(heap, flags);
413 guarded_heap_allocate(guarded_heap& heap, size_t size, size_t alignment,
418 ReadLocker areaListReadLocker(heap.lock);
419 for (guarded_heap_area* area = heap.areas; area != NULL;
429 int32 counter = atomic_get(&heap.area_creation_counter);
433 bool added = guarded_heap_add_area(heap, counter, flags);
435 return guarded_heap_allocate(heap, size, alignment, flags);
446 guarded_heap_get_locked_area_for(guarded_heap& heap, void* address)
448 ReadLocker areaListReadLocker(heap.lock);
449 for (guarded_heap_area* area = heap.areas; area != NULL;
461 panic("guarded heap area for address %p not found", address);
523 atomic_add((int32*)&area.heap->used_pages, -pagesFreed);
691 kprintf("guarded heap area: %p\n", area);
692 kprintf("next heap area: %p\n", area->next);
693 kprintf("guarded heap: %p\n", area->heap);
755 guarded_heap* heap = &sGuardedHeap;
758 heap = (guarded_heap*)parse_expression(argv[1]);
765 kprintf("guarded heap: %p\n", heap);
766 kprintf("rw lock: %p\n", &heap->lock);
767 kprintf("page count: %" B_PRIuSIZE "\n", heap->page_count);
768 kprintf("used pages: %" B_PRIuSIZE "\n", heap->used_pages);
770 heap->area_creation_counter);
773 guarded_heap_area* area = heap->areas;
779 kprintf("areas: %p (%" B_PRIuSIZE ")\n", heap->areas, areaCount);
880 panic("failed to prepare initial guarded heap for protection");
898 "Dump info about the guarded heap");
900 "Dump info about a guarded heap area",
901 "<address>\nDump info about guarded heap area containing address.\n",
904 "Dump info about a guarded heap page",
905 "<address>\nDump info about guarded heap page containing address.\n",
908 "Dump current heap allocations",