📄 util.c
字号:
/*
* util.c
* Copyright (c) Inst. of Machine Intelligence at Nankai University
*/
#include "util.h"
#include "mmu.h"
#include <stdlib.h>
void check_pgdir()
{
extern char memory[];
extern phyaddr_t cpu_cr3;
pde_t* pgdir = (pde_t*)(cpu_cr3 + memory);
pte_t* pgtable = NULL;
int i = 0;
int j = 0;
for (i = 0; i < 64; i++)
{
assert((pgdir[PDX(0xe0000000) + i] & (PTE_P | PTE_W)) == PTE_P);
pgtable = (pte_t*)(PTE_ADDR(pgdir[PDX(0xe0000000) + i]) + memory);
for (j = 0; j < 1024; j++)
{
assert((pgtable[j] & (PTE_P | PTE_W)) == PTE_P);
}
}
for (i = 0; i < 64; i++)
{
assert((pgdir[PDX(0xf0000000) + i] & (PTE_P | PTE_W)) == (PTE_P | PTE_W));
pgtable = (pte_t*)(PTE_ADDR(pgdir[PDX(0xf0000000) + i]) + memory);
for (j = 0; j < 1024; j++)
{
assert((pgtable[j] & (PTE_P | PTE_W)) == (PTE_P | PTE_W));
}
}
printf("Checking Page Table Succeeded\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -