^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* Shadow paging constants/helpers that don't need to be #undef'd. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #ifndef __KVM_X86_PAGING_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #define __KVM_X86_PAGING_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define GUEST_PT64_BASE_ADDR_MASK (((1ULL << 52) - 1) & ~(u64)(PAGE_SIZE-1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define PT64_LVL_ADDR_MASK(level) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) (GUEST_PT64_BASE_ADDR_MASK & ~((1ULL << (PAGE_SHIFT + (((level) - 1) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) * PT64_LEVEL_BITS))) - 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define PT64_LVL_OFFSET_MASK(level) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) (GUEST_PT64_BASE_ADDR_MASK & ((1ULL << (PAGE_SHIFT + (((level) - 1) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) * PT64_LEVEL_BITS))) - 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #endif /* __KVM_X86_PAGING_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)