git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update project structures
[lunaix-os.git]
/
lunaix-os
/
includes
/
lunaix
/
mm
/
page.h
diff --git
a/lunaix-os/includes/lunaix/mm/page.h
b/lunaix-os/includes/lunaix/mm/page.h
index 4ea31bc0a5221cdb4642ebb955cdaf5642bae486..c20218405d88fae25b9f9a2f15578da302b295e9 100644
(file)
--- a/
lunaix-os/includes/lunaix/mm/page.h
+++ b/
lunaix-os/includes/lunaix/mm/page.h
@@
-11,6
+11,8
@@
#define PG_LAST_TABLE PG_MAX_ENTRIES - 1
#define PG_FIRST_TABLE 0
#define PG_LAST_TABLE PG_MAX_ENTRIES - 1
#define PG_FIRST_TABLE 0
+#define PTE_NULL 0
+
#define P2V(paddr) ((uintptr_t)(paddr) + HIGHER_HLF_BASE)
#define V2P(vaddr) ((uintptr_t)(vaddr) - HIGHER_HLF_BASE)
#define P2V(paddr) ((uintptr_t)(paddr) + HIGHER_HLF_BASE)
#define V2P(vaddr) ((uintptr_t)(vaddr) - HIGHER_HLF_BASE)
@@
-44,6
+46,9
@@
#define PG_ENTRY_FLAGS(entry) (entry & 0xFFFU)
#define PG_ENTRY_ADDR(entry) (entry & ~0xFFFU)
#define PG_ENTRY_FLAGS(entry) (entry & 0xFFFU)
#define PG_ENTRY_ADDR(entry) (entry & ~0xFFFU)
+#define HAS_FLAGS(entry, flags) ((PG_ENTRY_FLAGS(entry) & (flags)) == flags)
+#define CONTAINS_FLAGS(entry, flags) (PG_ENTRY_FLAGS(entry) & (flags))
+
#define PG_PREM_R PG_PRESENT
#define PG_PREM_RW PG_PRESENT | PG_WRITE
#define PG_PREM_UR PG_PRESENT | PG_ALLOW_USER
#define PG_PREM_R PG_PRESENT
#define PG_PREM_RW PG_PRESENT | PG_WRITE
#define PG_PREM_UR PG_PRESENT | PG_ALLOW_USER
@@
-79,5
+84,12
@@
typedef struct {
uint16_t flags;
} v_mapping;
uint16_t flags;
} v_mapping;
+typedef uint32_t x86_pte_t;
+typedef struct
+{
+ x86_pte_t entry[PG_MAX_ENTRIES];
+} __attribute__((packed)) x86_page_table;
+
+
#endif /* __LUNAIX_PAGE_H */
#endif /* __LUNAIX_PAGE_H */