Files
mango/include/socks/pmap.h

33 lines
884 B
C

#ifndef SOCKS_PMAP_H_
#define SOCKS_PMAP_H_
/* all the functions declared in this file are defined in arch/xyz/pmap.c */
#include <socks/vm.h>
#include <socks/status.h>
#include <socks/machine/pmap.h>
#include <stddef.h>
#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