block allocator implementation and example

This commit is contained in:
2026-02-08 12:36:49 +00:00
parent 828f5bfb2d
commit 9f35fc9415
2 changed files with 248 additions and 4 deletions
+32 -4
View File
@@ -1,9 +1,37 @@
include print: "./lib/io/print.dsa";
include fib: "./lib/maths/fib.dsa";
include alloc: "./lib/memory/block_alloc.dsa";
fn main() -> u32 {
let x: u32 = 6;
let allocator: u32 = alloc::init(64, 32);
let y: u32 = fib::fib_n(x);
print::print_num(y);
print::print_hex_word(allocator);
print::print_newline();
let ptr: u32 = alloc::alloc(allocator);
print::print_hex_word(ptr);
*ptr = 200;
print::print_newline();
let p2: u32 = alloc::alloc(allocator);
print::print_hex_word(p2);
print::print_newline();
print::print_num(*ptr);
alloc::free(allocator, &ptr);
let ptr3: u32 = alloc::alloc(allocator);
print::print_newline();
print::print_hex_word(ptr3);
print::print_newline();
print::print_hex_word(ptr);
if ptr == 0 {
print::print("successful free of ptr");
}
return 0;
}