From 774e3796b252383aafb8b3f30d51a19400c74516 Mon Sep 17 00:00:00 2001 From: Brett Weiland Date: Sun, 18 Apr 2021 16:00:17 -0500 Subject: modified: src/bootloader/bios_functions/bios_disk.asm modified: src/bootloader/bootloader.asm new file: src/include/kernel.h modified: src/include/libc.h modified: src/include/paging.h new file: src/include/panic.h modified: src/kernel/kernel.c modified: src/kernel/libc.c modified: src/kernel/page.c new file: src/kernel/panic.c modified: src/link.ld modified: src/makefile modified: tools/page/page.py --- tools/page/page.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'tools/page/page.py') diff --git a/tools/page/page.py b/tools/page/page.py index 95d1ccc..0a0c359 100755 --- a/tools/page/page.py +++ b/tools/page/page.py @@ -24,6 +24,22 @@ def get_table_size(addr): return((pte_cnt + pde_cnt + pdpe_cnt + pml4_cnt) * 8) -ts = get_table_size(34359738368) -print(ts) +def get_palloc_table_size(tb, base, size): + tsize = 24 + for x in range(8): + bs = tsize + tsize += c(((size / (0x1000 * (1 << x))) / 64)) * 8 + print(tsize - bs) + print("buddy: {} - {} > {}".format( + hex(bs + tb), + hex((tsize + tb) - 1), + (size / (0x1000 * (1 << x))) / 64 + )) + return(tsize) + +# tablebase, base, size +free_chunks = [[0x200000, 0x100000, 3220041728], [0x22fce0, 0x100000000, 1073741824]] + +ts = get_palloc_table_size(free_chunks[0][0], free_chunks[0][1], free_chunks[0][2]) +print(hex(ts)) -- cgit v1.2.3