34,6 → 34,8 |
|
#include <arch/mm/page.h> |
#include <genarch/mm/page_pt.h> |
#include <genarch/drivers/ega/ega.h> |
#include <genarch/drivers/legacy/ia32/io.h> |
#include <arch/mm/frame.h> |
#include <mm/frame.h> |
#include <mm/page.h> |
48,7 → 50,12 |
#include <memstr.h> |
#include <print.h> |
#include <interrupt.h> |
#include <ddi/ddi.h> |
|
/** Physical memory area for devices. */ |
static parea_t dev_area; |
static parea_t ega_area; |
|
void page_arch_init(void) |
{ |
uintptr_t cur; |
93,10 → 100,15 |
return virtaddr; |
} |
|
void hw_area(uintptr_t *physaddr, pfn_t *frames) |
void hw_area(void) |
{ |
*physaddr = end_frame; |
*frames = ADDR2PFN(0xffffffff - end_frame); |
dev_area.pbase = end_frame; |
dev_area.frames = SIZE2FRAMES(0xffffffff - end_frame); |
ddi_parea_register(&dev_area); |
|
ega_area.pbase = EGA_VIDEORAM; |
ega_area.frames = SIZE2FRAMES(EGA_VRAM_SIZE); |
ddi_parea_register(&ega_area); |
} |
|
void page_fault(int n __attribute__((unused)), istate_t *istate) |