heap_free_page -> heap_free
This commit is contained in:
26
lib/heap.c
26
lib/heap.c
@@ -36,7 +36,19 @@ void heap_create(heap_t *heap)
|
|||||||
heap->pages = 0;
|
heap->pages = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool heap_free_page(heap_t *heap, page_t *page)
|
page_t *heap_allocate(heap_t *heap, size_t requested)
|
||||||
|
{
|
||||||
|
page_t *cur = page_create(requested, NULL);
|
||||||
|
if (heap->end)
|
||||||
|
heap->end->next = cur;
|
||||||
|
else
|
||||||
|
heap->beg = cur;
|
||||||
|
heap->end = cur;
|
||||||
|
heap->pages++;
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool heap_free(heap_t *heap, page_t *page)
|
||||||
{
|
{
|
||||||
if (!page || !heap)
|
if (!page || !heap)
|
||||||
return false;
|
return false;
|
||||||
@@ -76,18 +88,6 @@ bool heap_free_page(heap_t *heap, page_t *page)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
page_t *heap_allocate(heap_t *heap, size_t requested)
|
|
||||||
{
|
|
||||||
page_t *cur = page_create(requested, NULL);
|
|
||||||
if (heap->end)
|
|
||||||
heap->end->next = cur;
|
|
||||||
else
|
|
||||||
heap->beg = cur;
|
|
||||||
heap->end = cur;
|
|
||||||
heap->pages++;
|
|
||||||
return cur;
|
|
||||||
}
|
|
||||||
|
|
||||||
void heap_stop(heap_t *heap)
|
void heap_stop(heap_t *heap)
|
||||||
{
|
{
|
||||||
page_t *ptr = heap->beg;
|
page_t *ptr = heap->beg;
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ typedef struct
|
|||||||
} heap_t;
|
} heap_t;
|
||||||
|
|
||||||
void heap_create(heap_t *);
|
void heap_create(heap_t *);
|
||||||
bool heap_free_page(heap_t *, page_t *);
|
|
||||||
page_t *heap_allocate(heap_t *, size_t);
|
page_t *heap_allocate(heap_t *, size_t);
|
||||||
|
bool heap_free(heap_t *, page_t *);
|
||||||
void heap_stop(heap_t *);
|
void heap_stop(heap_t *);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -675,7 +675,7 @@ err_t vm_mdelete(vm_t *vm)
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
page_t *page = (page_t *)ptr.as_word;
|
page_t *page = (page_t *)ptr.as_word;
|
||||||
bool done = heap_free_page(&vm->heap, page);
|
bool done = heap_free(&vm->heap, page);
|
||||||
if (!done)
|
if (!done)
|
||||||
return ERR_INVALID_PAGE_ADDRESS;
|
return ERR_INVALID_PAGE_ADDRESS;
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
|
|||||||
Reference in New Issue
Block a user