该文件也十分简单,核心部分将在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 阅读(373)
评论(0) 编辑 收藏 引用 所属分类:
操作系统