From 67e7f93fc2ea9c6d04698f9af29be78d0123afb0 Mon Sep 17 00:00:00 2001 From: Miguel Date: Mon, 10 Sep 2018 01:41:28 +0200 Subject: start fixing virtual memory manager... (might take a while) --- kernel/vmem.h | 38 +++++--------------------------------- 1 file changed, 5 insertions(+), 33 deletions(-) (limited to 'kernel/vmem.h') 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 -#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); -- cgit v1.2.3