mmu.h #define PGROUNDDOWN(a) (((a)) & ~(PGSIZE-1))
トップページ
jupiteroak.hatenablog.com
mmu.h
https://github.com/mit-pdos/xv6-public/blob/master/mmu.h#L91
#define PGROUNDDOWN(a) (((a)) & ~(PGSIZE-1))
PGROUNDDOWNマクロは、aで指定されたアドレス値(16進数)の下3桁を切り下げます(アドレス値を4KBの倍数値に切り下げます)。
#define PGSIZE 4096 #define PGROUNDDOWN(a) (((a)) & ~(PGSIZE-1))
↓
#define PGROUNDDOWN(a) (((a)) & ~(4095))
↓
#define PGROUNDDOWN(a) (((a)) & ~(0x0000 0FFF))
↓
#define PGROUNDDOWN(a) (((a)) & 0xFFFF F000)
アドレス値aを~(PGSIZE-1)でマスク処理することにより、アドレス値を4KBの倍数値に切り下げます。