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