XenevaOS
Loading...
Searching...
No Matches
vmmngr.h
Go to the documentation of this file.
1
30#ifndef __VMMNGR_H__
31#define __VMMNGR_H__
32
33#include "littleboot.h"
34
35#define PTE_VALID (1ULL << 0)
36#define PTE_TABLE (1ULL << 1)
37#define PTE_BLOCK (0ULL << 1)
38#define PTE_AF (1ULL << 10)
39#define PTE_SH_INNER (3ULL << 8)
40#define PTE_AP_RW (0ULL << 6)
41#define PTE_ATTR_IDX_0 (0ULL << 2)
42#define PTE_ATTR_IDX_1 (1ULL << 2)
43#define PTE_SH_NONE (0 << 8)
44#define PTE_DEVICE PTE_ATTR_IDX_0
45#define PTE_NORMAL PTE_ATTR_IDX_1
46
47/*
48 * LBPagingInitialize -- initialize paging
49 */
50extern void LBPagingInitialize();
51
52/*
53 * LBPagingMap -- maps a virtual address to its physical
54 * address
55 * @param virtual -- virtual address to map
56 * @param physical -- physical address to map
57 */
58extern void LBPagingMap(uint64_t virtual, uint64_t physical);
59
60extern void LBPageTableWalk(uint64_t virtual);
61
62/*
63 * LBPagingFree -- free up a mapping
64 * @param virt_addr -- virtual address to free
65 * @param free_physical -- boolean value whether to free up
66 * the physical address or not
67 */
68extern void LBPagingFree(uint64_t virt_addr, bool free_physical);
69
70#endif
void LBPagingMap(uint64_t virtual, uint64_t physical)
Definition vmmngr.c:181
void LBPageTableWalk(uint64_t virtual)
Definition vmmngr.c:245
void LBPagingInitialize()
Definition vmmngr.c:70
void LBPagingFree(uint64_t virt_addr, bool free_physical)
Definition vmmngr.c:281
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165