xref: /OK3568_Linux_fs/kernel/arch/x86/kvm/mmu/paging.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /* Shadow paging constants/helpers that don't need to be #undef'd. */
3*4882a593Smuzhiyun #ifndef __KVM_X86_PAGING_H
4*4882a593Smuzhiyun #define __KVM_X86_PAGING_H
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #define GUEST_PT64_BASE_ADDR_MASK (((1ULL << 52) - 1) & ~(u64)(PAGE_SIZE-1))
7*4882a593Smuzhiyun #define PT64_LVL_ADDR_MASK(level) \
8*4882a593Smuzhiyun 	(GUEST_PT64_BASE_ADDR_MASK & ~((1ULL << (PAGE_SHIFT + (((level) - 1) \
9*4882a593Smuzhiyun 						* PT64_LEVEL_BITS))) - 1))
10*4882a593Smuzhiyun #define PT64_LVL_OFFSET_MASK(level) \
11*4882a593Smuzhiyun 	(GUEST_PT64_BASE_ADDR_MASK & ((1ULL << (PAGE_SHIFT + (((level) - 1) \
12*4882a593Smuzhiyun 						* PT64_LEVEL_BITS))) - 1))
13*4882a593Smuzhiyun #endif /* __KVM_X86_PAGING_H */
14*4882a593Smuzhiyun 
15