• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /barrelfish-2018-10-04/usr/eclipseclp/Shm/src/

Lines Matching refs:heap

30 * DESCRIPTION		heap allocator
43 * alloc_size(heap, bytes)
44 * free_size(heap, ptr, bytes)
45 * realloc_size(heap, ptr, oldbytes, newbytes)
47 * h_alloc(heap, bytes)
48 * h_free(heap, ptr)
49 * h_realloc(heap, ptr, newbytes)
326 _print("SHM: attempt to free out-of-heap pointer!\n");
465 * This is used to forcibly free all heap space (allocated or not)
466 * when the heap is finalised. We use auxiliary pages for this log.
649 (*hd->panic)("Out of swap space", "heap allocation");
709 struct heap *heap = hd->heap;
712 heap->small_blocks[i] = (generic_ptr) 0;
713 heap->small_allocated[i] = 0;
717 heap->powers[i] = (generic_ptr) 0;
718 heap->powers_allocated[i] = 0;
720 heap->alloc_ptr = alloc_page(hd);
721 heap->alloc_free = UNITS_PER_PAGE;
722 heap->requested = 0;
723 heap->used = 0;
724 heap->allocs = 0;
725 heap->small_block_pages = 1;
726 heap->power_pages = 0;
741 struct heap *heap = hd->heap;
746 heap->requested += bytes_needed;
747 if (++heap->allocs == alloc_stop)
752 heap->used += units_needed;
753 ptr = heap->small_blocks[units_needed];
754 heap->small_allocated[units_needed]++;
757 heap->small_blocks[units_needed] = *((generic_ptr *) ptr);
761 if (units_needed > heap->alloc_free) /* allocation block exhausted */
763 if (heap->alloc_free) /* put the rest into a free list */
765 * ((generic_ptr *) heap->alloc_ptr) =
766 heap->small_blocks[heap->alloc_free];
767 heap->small_blocks[heap->alloc_free] = heap->alloc_ptr;
769 heap->alloc_ptr = alloc_page(hd);
770 heap->small_block_pages++;
771 heap->alloc_free = UNITS_PER_PAGE;
773 ptr = heap->alloc_ptr; /* allocate from the current block */
774 heap->alloc_free -= units_needed;
775 heap->alloc_ptr = (generic_ptr)
776 ((char *) heap->alloc_ptr + units_needed*BYTES_PER_UNIT);
789 heap->used += blocksize;
790 ptr = heap->powers[index];
791 heap->powers_allocated[index]++;
794 heap->powers[index] = *((generic_ptr *) ptr);
796 else if (blocksize <= heap->alloc_free) /* get from allocation block */
798 ptr = heap->alloc_ptr;
799 heap->alloc_free -= blocksize;
800 heap->alloc_ptr = (generic_ptr)
801 ((char *) heap->alloc_ptr + blocksize*BYTES_PER_UNIT);
807 heap->power_pages++;
816 heap->powers[index] = (generic_ptr)(initptr + blocksize);
833 struct heap *heap = hd->heap;
847 heap->requested -= size;
851 heap->used -= units;
852 * ((generic_ptr *) ptr) = heap->small_blocks[units];
853 heap->small_blocks[units] = ptr;
854 heap->small_allocated[units]--;
866 heap->used -= blocksize;
867 * ((generic_ptr *) ptr) = heap->powers[index];
868 heap->powers[index] = ptr;
869 heap->powers_allocated[index]--;
938 ptr->s.magic = hd->heap;
950 if (h->s.magic != hd->heap)
955 h->s.magic = (struct heap *) 0;
971 if (h->s.magic != hd->heap)
988 - hd->heap->small_block_pages - hd->heap->power_pages)
1002 + hd->heap->used * BYTES_PER_UNIT;
1017 struct heap *heap = hd->heap;
1022 for (j=0, p = heap->small_blocks[i]; p; p = *(generic_ptr *)p, j++)
1025 i*BYTES_PER_UNIT, heap->small_allocated[i], j);
1032 for (j=0, p = heap->powers[i]; p; p = *(generic_ptr *)p, j++)
1035 blocksize*BYTES_PER_UNIT, heap->powers_allocated[i], j);
1037 p_fprintf(current_err_, "%10u byte chunk free\n", heap->alloc_free * BYTES_PER_UNIT);
1038 p_fprintf(current_err_, " #allocs = %d\n", heap->allocs);
1039 p_fprintf(current_err_, " requested = %d bytes\n", heap->requested);
1040 p_fprintf(current_err_, " used = %d bytes\n", heap->used * BYTES_PER_UNIT);
1042 (heap->small_block_pages + heap->power_pages)*BYTES_PER_PAGE);
1044 heap->small_block_pages, heap->power_pages);
1063 FullyUsedPages(hd) * BYTES_PER_PAGE + hd->heap->used * BYTES_PER_UNIT);
1067 pages->allocated, heap->small_block_pages, heap->power_pages,
1068 pages->allocated - heap->small_block_pages - heap->power_pages - pages->freed,