#include"param.h"
#include"pmap.h"
#include"phymem_manager.h"
#include"spinlock.h"
#include"assert.h"
uint npages; //number of avaiable pages//内存以页(4k大小)的形式的数量,这里的得到的是总的页数
char *start; //指向kernel后的内存地址
struct e820map *e820_memmap;
const struct phymem_manager_class *pmmc;//物理内存管理策略(buddy策略,first策略等等)的指针
struct Page *pages;//
struct spinlock kalloc_lock;
void init_pages_list (paddr_t start_addr,uint len,uint flags)//初始化内存页的标志位
{
paddr_t addr;
if(start_addr>=0xfec00000)
return;
assert (PGOFF(start_addr)==0,"error in init_pages_li