diff options
Diffstat (limited to 'src/kernel/proc.c')
-rw-r--r-- | src/kernel/proc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/kernel/proc.c b/src/kernel/proc.c index a0fb863..84075d7 100644 --- a/src/kernel/proc.c +++ b/src/kernel/proc.c @@ -25,9 +25,10 @@ uint16_t new_proc(uint8_t *file) { uint16_t handle = open_file(file); if (handle) for (uint16_t id = 3; id; ++id) - if (!PROCS[id].memory_start) { + if (!proc_table[id].memory_start) { uint32_t size = get_size(id); - void *mem = PROCS[id].memory_start = allocate_pages(PROCS[id].n_pages = (size - 1) / 4096 + 1, id); + void *mem; + proc_table[id].memory_end = size + (proc_table[id].memory_start = allocate_block(size, id)); read_file(handle, size, mem); close_file(handle); //Process file header and make new process @@ -38,6 +39,6 @@ uint16_t new_proc(uint8_t *file) { } void end_proc(uint16_t id) { - deallocate_pages(PROCS[id].memory_start, PROCS[id].n_pages); - PROCS[id].memory_start = 0; + deallocate_block(proc_table[id].memory_start); + proc_table[id].memory_start = 0; }
\ No newline at end of file |