42 lines
720 B
C
42 lines
720 B
C
|
|
#ifndef MM_H
|
|
#define MM_H MM_H
|
|
|
|
#include "hos_types.h"
|
|
#include "hos_defines.h"
|
|
#include "multiboot.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
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();
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
int mm_map(u32_t virtual_address, u32_t physical_address,
|
|
u32_t user_mode, u32_t writable);
|
|
|
|
u32_t mm_page_alloc();
|
|
|
|
#endif
|
|
|