博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IA32 MMU paging初始化代码
阅读量:5917 次
发布时间:2019-06-19

本文共 1401 字,大约阅读时间需要 4 分钟。

写了一段IA32 paging通用构造代码。有须要的。能够拿去

#define PDE_FLG_RW (1<<1)#define PDE_FLG_US (1<<2)#define PDE_FLG_RWT (1<<3)#define PDE_FLG_PCD (1<<4)/* * initialize to be zero for page directory and page table*/static __SECTION_ZERO_INIT("PAGE_DIR") __align(4096) U32 paging_pde[1<<10];static __SECTION_ZERO_INIT("PAGE_TABLE") __align(4096) U32 paging_pte_4k[1<<10][1<<10];/* * viraddr: virtual address/linear address (must be 4KB align) * phyaddr: physical address (must be 4KB align) * size: in bytes*/static void paging_4k(U32 viraddr, U32 phyaddr, U32 flags){	U32 viraddr_pd = viraddr>>22;	U32 viraddr_pt = (viraddr>>12) & 0x3FF;	/*page directory*/	paging_pde[viraddr_pd] = (U32)(&(paging_pte_4k[viraddr_pd][viraddr_pt])) & 0xFFFFF000;	paging_pde[viraddr_pd] |= flags;	paging_pde[viraddr_pd] |= 1;	paging_pde[viraddr_pd] &= (~(1<<7));	/*page table*/	paging_pte_4k[viraddr_pd][viraddr_pt] = phyaddr & 0xFFFFF000;	paging_pte_4k[viraddr_pd][viraddr_pt] |= flags;	paging_pte_4k[viraddr_pd][viraddr_pt] |= 1;	}static void paging_4k_frames(U32 viraddr, U32 phyaddr, U32 size, U32 flags){	U32 i, count = size >> 12;	for(i=0; i
>22; /*page directory*/ paging_pde[viraddr_pd] = phyaddr & 0xFFC00000; paging_pde[viraddr_pd] |= flags; paging_pde[viraddr_pd] |= 1; paging_pde[viraddr_pd] |= (1<<7);}static void paging_4m_frames(U32 viraddr, U32 phyaddr, U32 size, U32 flags){ U32 i, count = size >> 22; for(i=0; i

转载地址:http://nqfvx.baihongyu.com/

你可能感兴趣的文章
ASP.NET前后端分离框架
查看>>
链表的基本操作(Basic Operations on a Linked List)
查看>>
java面试题
查看>>
[LeetCode] Scramble String
查看>>
redis3.2 Jedis java操作
查看>>
iOS RunLoop了解和使用
查看>>
2018.12.28-bzoj-3784-树上的路径
查看>>
Abp框架之审计日志
查看>>
[摘录]知彼解己—同理心交流的原则
查看>>
html5的websocket
查看>>
删除链表中与给定值相等的元素
查看>>
操作系统原理学习笔记--进程管理
查看>>
IL查看override
查看>>
jvm垃圾回收
查看>>
JAVA面向对象-----this的概述
查看>>
使用Visual Studio创建图片精灵(Image Sprite)——Web Essential
查看>>
【jvm】java查看内存使用jmap,jstat和jstack使用 ,docker启动服务下查看jvm使用情况...
查看>>
jQuery全选反选全不选
查看>>
HD-ACM算法专攻系列(12)——Integer Inquiry
查看>>
IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)
查看>>