summaryrefslogtreecommitdiff
path: root/kernel/vmem.h
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-10 01:41:28 +0200
committerMiguel <m.i@gmx.at>2018-09-10 01:41:28 +0200
commit67e7f93fc2ea9c6d04698f9af29be78d0123afb0 (patch)
tree8affeecb23719c39f8494eb87c1576b1f0d35c55 /kernel/vmem.h
parent88c5873713a4eda47d299abd9cecaa49221ec9fe (diff)
start fixing virtual memory manager... (might take a while)v0.1
Diffstat (limited to 'kernel/vmem.h')
-rw-r--r--kernel/vmem.h38
1 files changed, 5 insertions, 33 deletions
diff --git a/kernel/vmem.h b/kernel/vmem.h
index 2a8e7cc..4d00c3e 100644
--- a/kernel/vmem.h
+++ b/kernel/vmem.h
@@ -47,39 +47,11 @@
*
*/
-//! i86 architecture defines 1024 entries per table--do not change
-#define PAGES_PER_TABLE 1024
-#define PAGES_PER_DIR 1024
+#include <stdint.h>
-#define PAGE_DIRECTORY_INDEX(x) (((x) >> 22) & 0x3ff)
-#define PAGE_TABLE_INDEX(x) (((x) >> 12) & 0x3ff)
-#define PAGE_GET_PHYSICAL_ADDRESS(x) (*x & ~0xfff)
+struct pdirectory_struct;
-//! page table represents 4mb address space
-#define PTABLE_ADDR_SPACE_SIZE 0x400000
+struct pdirectory_struct* vmem_init(uint32_t kernel_blocks,uint32_t fb_addr,uint32_t apic_addr, uint32_t ioapic_addr);
+void vmem_free_dir(struct pdirectory_struct *dir);
+struct pdirectory_struct* vmem_new_space_dir(struct pdirectory_struct *copy_dir,bool stack_only);
-//! directory table represents 4gb address space
-#define DTABLE_ADDR_SPACE_SIZE 0x100000000
-
-//! page sizes are 4kb
-#define PAGE_SIZE 4096
-
-//! page table entry
-typedef uint32_t pt_entry;
-
-//! a page directery entry
-typedef uint32_t pd_entry;
-
-//! page table
-typedef struct ptable_struct {
- pt_entry m_entries[PAGES_PER_TABLE];
-}ptable ;
-
-//! page directory
-typedef struct pdirectory_struct {
- pd_entry m_entries[PAGES_PER_DIR];
-}pdirectory;
-
-pdirectory* vmem_init(uint32_t kernel_blocks,uint32_t fb_addr,uint32_t apic_addr, uint32_t ioapic_addr);
-void vmem_free_dir(pdirectory *dir);
-pdirectory* vmem_new_space_dir(pdirectory *copy_dir,bool stack_only);