18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/* Shadow paging constants/helpers that don't need to be #undef'd. */
38c2ecf20Sopenharmony_ci#ifndef __KVM_X86_PAGING_H
48c2ecf20Sopenharmony_ci#define __KVM_X86_PAGING_H
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#define GUEST_PT64_BASE_ADDR_MASK (((1ULL << 52) - 1) & ~(u64)(PAGE_SIZE-1))
78c2ecf20Sopenharmony_ci#define PT64_LVL_ADDR_MASK(level) \
88c2ecf20Sopenharmony_ci	(GUEST_PT64_BASE_ADDR_MASK & ~((1ULL << (PAGE_SHIFT + (((level) - 1) \
98c2ecf20Sopenharmony_ci						* PT64_LEVEL_BITS))) - 1))
108c2ecf20Sopenharmony_ci#define PT64_LVL_OFFSET_MASK(level) \
118c2ecf20Sopenharmony_ci	(GUEST_PT64_BASE_ADDR_MASK & ((1ULL << (PAGE_SHIFT + (((level) - 1) \
128c2ecf20Sopenharmony_ci						* PT64_LEVEL_BITS))) - 1))
138c2ecf20Sopenharmony_ci#endif /* __KVM_X86_PAGING_H */
148c2ecf20Sopenharmony_ci
15