summaryrefslogtreecommitdiff
path: root/tools/page
diff options
context:
space:
mode:
authorBrett Weiland <brett_weiland@bpcspace.com>2021-04-18 16:00:17 -0500
committerBrett Weiland <brett_weiland@bpcspace.com>2021-04-18 16:00:17 -0500
commit774e3796b252383aafb8b3f30d51a19400c74516 (patch)
tree20ad93c125d4f6bad755e6a898ddb4259818b4fa /tools/page
parentf0602964daa20ad9cd05f097b943c8edbf2df2e2 (diff)
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
Diffstat (limited to 'tools/page')
-rwxr-xr-xtools/page/page.py20
1 files changed, 18 insertions, 2 deletions
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))