OSDN Git Service

KVM: selftests: Copy KVM PFERR masks into selftests
authorDavid Matlack <dmatlack@google.com>
Wed, 2 Nov 2022 18:46:50 +0000 (11:46 -0700)
committerSean Christopherson <seanjc@google.com>
Thu, 17 Nov 2022 00:59:00 +0000 (16:59 -0800)
Copy KVM's macros for page fault error masks into processor.h so they
can be used in selftests.

Signed-off-by: David Matlack <dmatlack@google.com>
Reviewed-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20221102184654.282799-7-dmatlack@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/include/x86_64/processor.h

index e000e35..159ea61 100644 (file)
@@ -887,4 +887,27 @@ void virt_map_level(struct kvm_vm *vm, uint64_t vaddr, uint64_t paddr,
 #define XSTATE_XTILE_DATA_MASK         (1ULL << XSTATE_XTILE_DATA_BIT)
 #define XFEATURE_XTILE_MASK            (XSTATE_XTILE_CFG_MASK | \
                                        XSTATE_XTILE_DATA_MASK)
+
+#define PFERR_PRESENT_BIT 0
+#define PFERR_WRITE_BIT 1
+#define PFERR_USER_BIT 2
+#define PFERR_RSVD_BIT 3
+#define PFERR_FETCH_BIT 4
+#define PFERR_PK_BIT 5
+#define PFERR_SGX_BIT 15
+#define PFERR_GUEST_FINAL_BIT 32
+#define PFERR_GUEST_PAGE_BIT 33
+#define PFERR_IMPLICIT_ACCESS_BIT 48
+
+#define PFERR_PRESENT_MASK     BIT(PFERR_PRESENT_BIT)
+#define PFERR_WRITE_MASK       BIT(PFERR_WRITE_BIT)
+#define PFERR_USER_MASK                BIT(PFERR_USER_BIT)
+#define PFERR_RSVD_MASK                BIT(PFERR_RSVD_BIT)
+#define PFERR_FETCH_MASK       BIT(PFERR_FETCH_BIT)
+#define PFERR_PK_MASK          BIT(PFERR_PK_BIT)
+#define PFERR_SGX_MASK         BIT(PFERR_SGX_BIT)
+#define PFERR_GUEST_FINAL_MASK BIT_ULL(PFERR_GUEST_FINAL_BIT)
+#define PFERR_GUEST_PAGE_MASK  BIT_ULL(PFERR_GUEST_PAGE_BIT)
+#define PFERR_IMPLICIT_ACCESS  BIT_ULL(PFERR_IMPLICIT_ACCESS_BIT)
+
 #endif /* SELFTEST_KVM_PROCESSOR_H */