hos/kernel/mm/mm.h
josh 54b42c0226 added set_cr3() macro and called it to set the PDBR
git-svn-id: svn://anubis/hos/trunk@40 5b3e749e-e535-0410-8002-a9bb6afbdfca
2009-07-04 00:22:18 +00:00

37 lines
737 B
C

#ifndef MM_H
#define MM_H MM_H
#include "hos_types.h"
#include "hos_defines.h"
#include "multiboot.h"
typedef u32_t pagedirectory_entry_t;
#define NUM_PAGETABLE_ENTRIES (PAGE_SIZE / sizeof(pagedirectory_entry_t))
typedef pagedirectory_entry_t
pagedirectory_t[NUM_PAGETABLE_ENTRIES];
extern pagedirectory_t page_directory;
typedef struct
{
u64_t base;
u64_t length;
} mm_mem_range_t;
void mm_record_mmap_entry(mb_mmap_t * mmap);
void mm_bootstrap();
int mm_map(u32_t virtual_address, u32_t physical_address,
u32_t user_mode, u32_t writable);
u32_t mm_page_alloc();
#define set_cr3(address) \
__asm__ __volatile__ ("movl %0, %%cr3" : : "r" (address));
#endif