summaryrefslogtreecommitdiff
path: root/src/stem/mem/paging.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/stem/mem/paging.h')
-rw-r--r--src/stem/mem/paging.h46
1 files changed, 0 insertions, 46 deletions
diff --git a/src/stem/mem/paging.h b/src/stem/mem/paging.h
deleted file mode 100644
index cb76cd6..0000000
--- a/src/stem/mem/paging.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef DEF_PAGING_H
-#define DEF_PAGING_H
-
-#include <types.h>
-#include <task/idt.h>
-
-struct page {
- uint32_t present : 1; //Page mapped to a frame ?
- uint32_t rw : 1; //Page read/write ?
- uint32_t user : 1; //Page user readable ?
- uint32_t accessed : 1; //Was page accessed ?
- uint32_t dirty : 1; //Was page modified ?
- uint32_t unused : 7;
- uint32_t frame : 20; //Frame address (physical address)
-};
-
-struct page_table {
- struct page pages[1024];
-};
-
-struct segment_map;
-struct page_directory {
- struct page_table *tables[1024]; //Virtual addresses of page tables
- uint32_t *tablesPhysical; //Pointer to the virtual address of the page directory (contain phys addr of pt)
- uint32_t physicalAddr; //Physical address of info above
- struct segment_map *mappedSegs;
-};
-
-extern struct page_directory *kernel_pagedir;
-
-uint32_t frame_alloc();
-void frame_free(uint32_t id);
-
-void paging_init(size_t totalRam);
-void paging_cleanup();
-void pagedir_switch(struct page_directory *pd);
-struct page_directory *pagedir_new(); //Creates a brand new empty page directory for a process, with kernel pages
-void pagedir_delete(struct page_directory *pagedir);
-struct page *pagedir_getPage(struct page_directory *pd, uint32_t address, int make);
-void page_map(struct page *page, uint32_t frame, uint32_t user, uint32_t rw);
-void page_unmap(struct page *page);
-void page_unmapFree(struct page *page);
-
-uint32_t paging_fault(struct registers *regs); //returns a boolean : 1 if unhandled, 0 if ok
-
-#endif