rulimine/stage23/mm/vmm.h

21 lines
462 B
C
Raw Normal View History

2020-09-21 13:15:55 +03:00
#ifndef __MM__VMM_H__
#define __MM__VMM_H__
2020-09-11 11:53:21 +03:00
#include <stdint.h>
#include <stdbool.h>
2020-09-11 11:53:21 +03:00
#define VMM_FLAG_PRESENT ((uint64_t)1 << 0)
#define VMM_FLAG_WRITE ((uint64_t)1 << 1)
#define VMM_FLAG_NOEXEC ((uint64_t)1 << 63)
typedef struct {
int levels;
void *top_level;
} pagemap_t;
2020-09-11 11:53:21 +03:00
void vmm_assert_nx(void);
pagemap_t new_pagemap(int lv);
void map_page(pagemap_t pagemap, uint64_t virt_addr, uint64_t phys_addr, uint64_t flags, bool hugepages);
2020-09-11 11:53:21 +03:00
#endif