#include "memory.h" void init_page_table(uint32_t page_table[1024], uint16_t start) { for (uint16_t i = start; i < 1024; i++) page_table[i] = (i << 12) | 0x03; } int16_t create_page_table(uint16_t pd_index) { void *frame = alloc_frames(PAGE_SIZE); if (!frame) return -1; page_directory[pd_index] = ((uint32_t)frame & PAGE_MASK) | 0x03; uint32_t *page_table = (uint32_t *)((PT_START + pd_index) * 1024); init_page_table(page_table, 0); return 0; }