Added constructors for heap and resource table

This commit is contained in:
2021-04-17 06:25:46 -05:00
parent 291ed65248
commit 7dd19d0c2a
4 changed files with 43 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
#include "priorityqueue.h"
#include "allocator.h"
#include "mmgr.h"
#include "types/status.h"
void heapify(struct priority_queue_t *queue, size_t i)
@@ -25,6 +27,22 @@ void heapify(struct priority_queue_t *queue, size_t i)
}
}
int construct_priority_queue(struct priority_queue_t *queue, struct page_stack_t *page_stack)
{
queue->heap = allocate_from_bottom(page_size);
if(queue->heap == NULL)
{
return S_OUT_OF_MEMORY;
}
int status = map_page(page_stack, queue->heap, reserve_page(page_stack), PAGE_RW);
if(status == S_OK)
{
queue->capacity = page_size / sizeof(struct process_t*);
queue->size = 0;
}
return status;
}
struct process_t *extract_min(struct priority_queue_t *queue)
{
if(queue->size == 0)