Signed-off-by: Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx> --- lib/x86/processor.h | 1 + x86/svm.c | 5 +++++ x86/svm.h | 1 + 3 files changed, 7 insertions(+) diff --git a/lib/x86/processor.h b/lib/x86/processor.h index fe5add5..ad892b7 100644 --- a/lib/x86/processor.h +++ b/lib/x86/processor.h @@ -180,6 +180,7 @@ static inline bool is_intel(void) * Extended Leafs, a.k.a. AMD defined */ #define X86_FEATURE_SVM (CPUID(0x80000001, 0, ECX, 2)) +#define X86_FEATURE_PAT (CPUID(0x80000001, 0, EDX, 16)) #define X86_FEATURE_NX (CPUID(0x80000001, 0, EDX, 20)) #define X86_FEATURE_GBPAGES (CPUID(0x80000001, 0, EDX, 26)) #define X86_FEATURE_RDTSCP (CPUID(0x80000001, 0, EDX, 27)) diff --git a/x86/svm.c b/x86/svm.c index 3f94b2a..d03f011 100644 --- a/x86/svm.c +++ b/x86/svm.c @@ -89,6 +89,11 @@ bool npt_supported(void) return this_cpu_has(X86_FEATURE_NPT); } +bool pat_supported(void) +{ + return this_cpu_has(X86_FEATURE_PAT); +} + int get_test_stage(struct svm_test *test) { barrier(); diff --git a/x86/svm.h b/x86/svm.h index f74b13a..d4db4c1 100644 --- a/x86/svm.h +++ b/x86/svm.h @@ -409,6 +409,7 @@ void default_prepare(struct svm_test *test); void default_prepare_gif_clear(struct svm_test *test); bool default_finished(struct svm_test *test); bool npt_supported(void); +bool pat_supported(void); int get_test_stage(struct svm_test *test); void set_test_stage(struct svm_test *test, int s); void inc_test_stage(struct svm_test *test); -- 2.27.0