⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.c

📁 是关于页面替换算法的代码模拟
💻 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 + -