1 #ifndef __XEN_PAGE_DEFS_H__
2 #define __XEN_PAGE_DEFS_H__
3 
4 /* Helpers for different page granularities. */
5 #define PAGE_SIZE_GRAN(gran)        ((paddr_t)1 << PAGE_SHIFT_##gran)
6 #define PAGE_MASK_GRAN(gran)        (-PAGE_SIZE_GRAN(gran))
7 #define PAGE_ALIGN_GRAN(gran, addr) ((addr + ~PAGE_MASK_##gran) & PAGE_MASK_##gran)
8 
9 #define PAGE_SHIFT_4K               12
10 #define PAGE_SIZE_4K                PAGE_SIZE_GRAN(4K)
11 #define PAGE_MASK_4K                PAGE_MASK_GRAN(4K)
12 #define PAGE_ALIGN_4K(addr)         PAGE_ALIGN_GRAN(4K, addr)
13 
14 #define PAGE_SHIFT_16K              14
15 #define PAGE_SIZE_16K               PAGE_SIZE_GRAN(16K)
16 #define PAGE_MASK_16K               PAGE_MASK_GRAN(16K)
17 #define PAGE_ALIGN_16K(addr)        PAGE_ALIGN_GRAN(16K, addr)
18 
19 #define PAGE_SHIFT_64K              16
20 #define PAGE_SIZE_64K               PAGE_SIZE_GRAN(64K)
21 #define PAGE_MASK_64K               PAGE_MASK_GRAN(64K)
22 #define PAGE_ALIGN_64K(addr)        PAGE_ALIGN_GRAN(64K, addr)
23 
24 #endif /* __XEN_PAGE_DEFS_H__ */
25