19 lines
553 B
C
19 lines
553 B
C
#include "memory.h"
|
|
#include "string.h"
|
|
|
|
extern void load_page_directory(uint32_t *);
|
|
extern void enable_paging(void);
|
|
|
|
uint32_t page_directory_entries[1024] __attribute__((aligned(4096)));
|
|
uint32_t page_table_entries[1024] __attribute__((aligned(4096)));
|
|
|
|
void init_memory(void)
|
|
{
|
|
memset(page_directory_entries, INIT_FLAGS, 1024);
|
|
for (int i = 0; i < 1024; i++)
|
|
page_table_entries[i] = (i << 12) | INIT_FLAGS;
|
|
page_directory_entries[0] = (uint32_t)page_table_entries | INIT_FLAGS;
|
|
load_page_directory(page_directory_entries);
|
|
enable_paging();
|
|
}
|