#ifndef SOCKS_PMAP_H_ #define SOCKS_PMAP_H_ /* all the functions declared in this file are defined in arch/xyz/pmap.c */ #include #include #include #include #define PFN(x) ((x) >> VM_PAGE_SHIFT) typedef ml_pmap_t pmap_t; typedef ml_pfn_t pfn_t; typedef enum pmap_flags { PMAP_HUGEPAGE = 0x01u, } pmap_flags_t; extern void pmap_bootstrap(void); extern pmap_t pmap_create(void); extern void pmap_destroy(pmap_t pmap); extern void pmap_switch(pmap_t pmap); extern kern_status_t pmap_add(pmap_t pmap, void *p, pfn_t pfn, vm_prot_t prot, pmap_flags_t flags); extern kern_status_t pmap_add_block(pmap_t pmap, void *p, pfn_t pfn, size_t len, vm_prot_t prot, pmap_flags_t flags); extern kern_status_t pmap_remove(pmap_t pmap, void *p); extern kern_status_t pmap_remove_range(pmap_t pmap, void *p, size_t len); #endif