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