随笔-80  评论-24  文章-0  trackbacks-0
该文件也十分简单,核心部分将在buffer.c中实现。
 1 #include <type.h>
 2 #include <winixj/buffer.h>
 3 
 4 //定义指向页表和页目录表的指针,为全局变量
 5 uint32* page_dir    = (uint32 *)(0x100000);
 6 uint32* page_tbl    = (uint32 *)(0x101000);
 7 uint32 MEMORY_START    = 0x200000;    //普通内存从2M开始,前两M为内核使用
 8 uint32 MEMORY_END    = 0;        //普通内存的末端
 9 
10 //扩展内存的大小,以KB为单位
11 uint16 externed_mem = 0;
12 
13 void init_mm()
14 {
15     externed_mem = *(uint16 *)0xf0002;
16     init_buffer();
17     MEMORY_END = buf_info.start;  //普通内存末端为高速缓冲区的起始
18 }
19 

该程序有几个变量比较重要,page_dir,page_tbl,MEMORY_START,MEMORY_END:
page_dir是页目录表起始地址。
page_tbl是页表起始地址。
MEMORY_START:普通内存的起始端,在分页中使用。
MEMORY_END:普通内存的末端,在分页中使用,它的值在buffer.c中动态确定。
posted on 2012-02-14 20:16 myjfm 阅读(360) 评论(0)  编辑 收藏 引用 所属分类: 操作系统

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理