Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern "C" {
- octo::u8 __heap_base[512 * 1024 * 1024];
- }
- extern "C" octo::u32 __wasm_get_heap_size() {
- return (octo::u32)(__heap_base + sizeof(__heap_base));
- }
- void initialize() {
- HeapCurrentSize = __wasm_get_heap_size();
- u32 heap_first_page = ((u32)&__heap_base) / PageSize;
- u32 heap_end_page = HeapCurrentSize / PageSize;
- FirstPage = heap_first_page;
- AvailPages = heap_end_page;
- for (u32 i = 0; i < MaxTreeNodes - 1; i++) {
- PageTreeNodes[i].child[0] = &PageTreeNodes[i + 1];
- }
- NodeFreeList = &PageTreeNodes[0];
- RootNode = nullptr;
- std::printf("INITAILIZE BEGIN\n");
- std::printf("%p\n", NodeFreeList); // 0
- insert_free_block(
- make_free_block((u8*)(heap_first_page * PageSize), heap_end_page - heap_first_page)
- );
- std::printf("INITAILIZE END\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement