关于页面对齐
给出I386处理器家族的页面定义:#define PAGE_SIZE 12 //物理页面的大小:4K
#define PAGE_MASK (~(PAGE_SIZE-1))
现有代码:
address&=PAGE_MASK;
此处,address被按页面大小对齐了,请问这个算法怎么算的?高手执教,谢谢 你抄错了吧,我记得内核通常的定义方式:
#define PAGE_OFFSET 12
#define PAGE_SIZE (1<<PAGE_OFFSET)
#define PAGE_MASK (~(PAGE_SIZE-1))
address &= PAGE_MASK; // now addresss page aligned
即 OFFSET, SIZE, MASK 几个一起定义
PAGE_SIZE = 0x00001000
PAGE_MASK = 0xfffff000
这样就很明显了。 还是看不太懂,能不能把算法说一说? 谢谢,我想明白了,谢谢你。
页:
[1]