BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / commit / 381dc7b37e5dfe249412ce3559e8b0dcd56f6267 / include / nucleus / memory.h

// Related

Nucleus

Barry Virtual Memory Regions and namespace 381dc7b (3 years, 2 months ago)
diff --git a/include/nucleus/memory.h b/include/nucleus/memory.h
index 542bc77..5395278 100644
--- a/include/nucleus/memory.h
+++ b/include/nucleus/memory.h
@@ -15,6 +15,8 @@ typedef uint32_t page_t;
 typedef uint32_t page_table_t;
 typedef uint32_t page_dir_t;
 typedef struct Page Page;
+typedef struct VirtualMemory VirtualMemory;
+typedef struct VMRegion VMRegion;
 
 /* Page Table Entry flags */
 enum PTEFlag {
@@ -39,6 +41,8 @@ enum PDEFlag {
 };
 
 extern ObjectType pageType;
+extern ObjectType virtualMemoryType;
+extern ObjectType vmRegionType;
 
 /* Flush Translation Lookaside Buffer */
 static inline void
@@ -51,6 +55,7 @@ uintptr_t alloc_frame(void);
 void free_frame(uintptr_t frame);
 void init_frames(size_t memMapSize, void *memMap);
 
+page_t get_page(uintptr_t vaddr);
 void set_page(uintptr_t vaddr, page_t page);
 page_dir_t clone_dir(void);
 void init_paging(void);
@@ -61,6 +66,7 @@ void kfree(void *addr);
 
 Page *create_page(ObjectList *cache, page_t frame, off_t offset);
 Page *find_page(ObjectList *cache, off_t offset);
+void install_page(uintptr_t addr, Page *page, int prot);
 void *map_page(Page *page);
 
 int verify_access(const void *addr, size_t len, int prot);