Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. extern "C" {
  2.     octo::u8 __heap_base[512 * 1024 * 1024];
  3. }
  4.  
  5. extern "C" octo::u32 __wasm_get_heap_size() {
  6.     return (octo::u32)(__heap_base + sizeof(__heap_base));
  7. }
  8.  
  9. void initialize() {
  10.     HeapCurrentSize = __wasm_get_heap_size();
  11.     u32 heap_first_page = ((u32)&__heap_base) / PageSize;
  12.     u32 heap_end_page = HeapCurrentSize / PageSize;
  13.     FirstPage = heap_first_page;
  14.     AvailPages = heap_end_page;
  15.     for (u32 i = 0; i < MaxTreeNodes - 1; i++) {
  16.         PageTreeNodes[i].child[0] = &PageTreeNodes[i + 1];
  17.     }
  18.     NodeFreeList = &PageTreeNodes[0];
  19.     RootNode = nullptr;  
  20.     std::printf("INITAILIZE BEGIN\n");
  21.     std::printf("%p\n", NodeFreeList); // 0
  22.     insert_free_block(
  23.         make_free_block((u8*)(heap_first_page * PageSize), heap_end_page - heap_first_page)
  24.     );
  25.     std::printf("INITAILIZE END\n");
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement