block allocator implementation and example
This commit is contained in:
+32
-4
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user