PAGE_MASK 매크로에 대해 질문드립니다.

강동우의 이미지

일반적으로 페이징 쪽 관련해서 PAGE_MASK 매크로가 쓰이는데 이녀석은 도대체 어떤 역할을 하는 것인가요?

소스에 보면
#define PAGE+SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE -1))

이렇게 정의가 되어 있는데 의미와 용도를 알고 싶습니다.