| 518 | } |
| 519 | |
| 520 | void KernelMapVirtualMemory4K(uint64_t phys, uint64_t virt, uint64_t amount, uint64_t flags){ |
| 521 | uint64_t pageDirIndex, pageIndex; |
| 522 | |
| 523 | while(amount--){ |
| 524 | pageDirIndex = PAGE_DIR_GET_INDEX(virt); |
| 525 | pageIndex = PAGE_TABLE_GET_INDEX(virt); |
| 526 | SetPageFrame(&(kernelHeapDirTables[pageDirIndex][pageIndex]), phys); |
| 527 | kernelHeapDirTables[pageDirIndex][pageIndex] |= flags; |
| 528 | invlpg(virt); |
| 529 | phys += PAGE_SIZE_4K; |
| 530 | virt += PAGE_SIZE_4K; |
| 531 | } |
| 532 | } |
| 533 | |
| 534 | void KernelMapVirtualMemory4K(uint64_t phys, uint64_t virt, uint64_t amount){ |
| 535 | KernelMapVirtualMemory4K(phys, virt, amount, PAGE_WRITABLE | PAGE_PRESENT); |
no test coverage detected