1#ifndef __HAL__CPU__PAGING_H__
2#define __HAL__CPU__PAGING_H__
6#define PAGE_SIZE 0x1000
31#define VMM_PAGE paging_create_page_directory()
34#define PAGE_PRESENT (1ULL << 0)
35#define PAGE_WRITABLE (1ULL << 1)
36#define PAGE_USER (1ULL << 2)
37#define PAGE_WRITE_THROUGH (1ULL << 3)
38#define PAGE_CACHE_DISABLE (1ULL << 4)
39#define PAGE_ACCESSED (1ULL << 5)
40#define PAGE_DIRTY (1ULL << 6)
41#define PAGE_HUGE (1ULL << 7)
42#define PAGE_GLOBAL (1ULL << 8)
43#define PAGE_NO_EXECUTE (1ULL << 63)
46#define PAGE_PHYS_MASK 0x000FFFFFFFFFF000ULL
49#define PAGE_INTER_STRIP \
50 (0xFFFULL << 52 | (1ULL << 7) | (1ULL << 4) | (1ULL << 3))
page_t paging_get_highest_page_map(void)
page_t paging_create_page_directory()
void paging_unmap_page(page_t page_dir, uint64_t virt)
void vxMmap(page_t page_dir, uint64_t virt, uint64_t phys, uint64_t flags)
void paging_reload(page_t pml4)
void paging_debug(page_t pml4, uint64_t virt)
void paging_unmap_fill(page_t page_dir, uint64_t virt, size_t size)
void paging_setup(page_t pml4)
volatile uintptr_t * page_t
void vxMultipleMmap(page_t page_dir, uint64_t virt, uint64_t phys, uint64_t size, uint64_t flags)
void paging_add_dma_mapping(uintptr_t phys, uintptr_t virt, uint64_t size)
uint64_t vaddr_to_paddr(page_t pml4, uint64_t vaddr)