spz-lab3/src/mmu.c

31 lines
538 B
C
Raw Normal View History

2025-03-06 23:05:21 +02:00
#include <stdio.h>
2025-03-06 21:50:29 +02:00
#include "kernel.h"
2025-03-07 14:07:59 +02:00
extern size_t system_time;
2025-03-06 21:50:29 +02:00
void MMU_read(struct PageTableEntry *pt, size_t page_no)
{
if (!pt[page_no].p)
KERNEL_page_fault(pt, page_no);
2025-03-06 23:05:21 +02:00
printf("[mmu:read] pt[%d] -> ppn %d\n", page_no, pt[page_no].ppn);
2025-03-06 21:50:29 +02:00
pt[page_no].r = 1;
2025-03-07 14:07:59 +02:00
system_time++;
2025-03-06 21:50:29 +02:00
}
void MMU_write(struct PageTableEntry *pt, size_t page_no)
{
if (!pt[page_no].p)
KERNEL_page_fault(pt, page_no);
2025-03-06 23:05:21 +02:00
printf("[mmu:write] pt[%d] -> ppn %d\n", page_no, pt[page_no].ppn);
2025-03-06 21:50:29 +02:00
pt[page_no].r = 1;
pt[page_no].m = 1;
2025-03-07 14:07:59 +02:00
system_time++;
2025-03-06 21:50:29 +02:00
}