debuggers.hg

changeset 22734:2a18d709f6e9

Update AMD SVM feature flags

This patch updates AMD SVM feature flags (0x8000000A:EDX). It adds
several new feature bits, along with feature description. The feature
names are changed to be consistent with Linux kernel.

Signed-off-by: Wei Huang <wei.huang2@amd.com>
Signed-off-by: Keir Fraser <keir@xen.org>
author Keir Fraser <keir@xen.org>
date Sat Jan 08 10:52:45 2011 +0000 (2011-01-08)
parents aa3242c34dda
children b0e8e00f5be2
files xen/include/asm-x86/hvm/svm/svm.h
line diff
     1.1 --- a/xen/include/asm-x86/hvm/svm/svm.h	Sat Jan 08 10:48:46 2011 +0000
     1.2 +++ b/xen/include/asm-x86/hvm/svm/svm.h	Sat Jan 08 10:52:45 2011 +0000
     1.3 @@ -64,18 +64,22 @@ static inline void svm_vmsave(void *vmcb
     1.4  
     1.5  extern u32 svm_feature_flags;
     1.6  
     1.7 -#define SVM_FEATURE_NPT     0
     1.8 -#define SVM_FEATURE_LBRV    1
     1.9 -#define SVM_FEATURE_SVML    2
    1.10 -#define SVM_FEATURE_NRIPS   3
    1.11 -#define SVM_FEATURE_CLEAN   5
    1.12 -#define SVM_FEATURE_PAUSEF  10
    1.13 +#define SVM_FEATURE_NPT            0 /* Nested page table support */
    1.14 +#define SVM_FEATURE_LBRV           1 /* LBR virtualization support */
    1.15 +#define SVM_FEATURE_SVML           2 /* SVM locking MSR support */
    1.16 +#define SVM_FEATURE_NRIPS          3 /* Next RIP save on VMEXIT support */
    1.17 +#define SVM_FEATURE_TSCRATEMSR     4 /* TSC ratio MSR support */
    1.18 +#define SVM_FEATURE_VMCBCLEAN      5 /* VMCB clean bits support */
    1.19 +#define SVM_FEATURE_FLUSHBYASID    6 /* TLB flush by ASID support */
    1.20 +#define SVM_FEATURE_DECODEASSISTS  7 /* Decode assists support */
    1.21 +#define SVM_FEATURE_PAUSEFILTER   10 /* Pause intercept filter support */
    1.22  
    1.23 -#define cpu_has_svm_npt     test_bit(SVM_FEATURE_NPT, &svm_feature_flags)
    1.24 -#define cpu_has_svm_lbrv    test_bit(SVM_FEATURE_LBRV, &svm_feature_flags)
    1.25 -#define cpu_has_svm_svml    test_bit(SVM_FEATURE_SVML, &svm_feature_flags)
    1.26 -#define cpu_has_svm_nrips   test_bit(SVM_FEATURE_NRIPS, &svm_feature_flags)
    1.27 -#define cpu_has_svm_cleanbits test_bit(SVM_FEATURE_CLEAN, &svm_feature_flags)
    1.28 -#define cpu_has_pause_filter  test_bit(SVM_FEATURE_PAUSEF, &svm_feature_flags)
    1.29 +#define cpu_has_svm_feature(f) test_bit(f, &svm_feature_flags)
    1.30 +#define cpu_has_svm_npt       cpu_has_svm_feature(SVM_FEATURE_NPT)
    1.31 +#define cpu_has_svm_lbrv      cpu_has_svm_feature(SVM_FEATURE_LBRV)
    1.32 +#define cpu_has_svm_svml      cpu_has_svm_feature(SVM_FEATURE_SVML)
    1.33 +#define cpu_has_svm_nrips     cpu_has_svm_feature(SVM_FEATURE_NRIPS)
    1.34 +#define cpu_has_svm_cleanbits cpu_has_svm_feature(SVM_FEATURE_VMCBCLEAN)
    1.35 +#define cpu_has_pause_filter  cpu_has_svm_feature(SVM_FEATURE_PAUSEFILTER)
    1.36  
    1.37  #endif /* __ASM_X86_HVM_SVM_H__ */