]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
x86: Replace ad-hoc bitmaskof() macro with single cpufeat_mask() defn.
authorKeir Fraser <keir@xen.org>
Thu, 2 Jun 2011 13:43:02 +0000 (14:43 +0100)
committerKeir Fraser <keir@xen.org>
Thu, 2 Jun 2011 13:43:02 +0000 (14:43 +0100)
Signed-off-by: Keir Fraser <keir@xen.org>
xen-unstable changeset:   23460:c72869c8ae02
xen-unstable date:        Thu Jun 02 14:34:34 2011 +0100

xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/svm/svm.c
xen/arch/x86/hvm/vmx/vmx.c
xen/include/asm-x86/cpufeature.h

index bb086bcb228d3edaac41f2f1d5c40148bc17c205..ecd1a2680451bead8f292b25c800a343845d9588 100644 (file)
@@ -2184,7 +2184,6 @@ unsigned long copy_from_user_hvm(void *to, const void *from, unsigned len)
     return rc ? len : 0; /* fake a copy_from_user() return code */
 }
 
-#define bitmaskof(idx)  (1U << ((idx) & 31))
 void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
                                    unsigned int *ecx, unsigned int *edx)
 {
@@ -2211,7 +2210,7 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
         /* Fix up OSXSAVE. */
         if ( xsave_enabled(v) )
             *ecx |= (v->arch.hvm_vcpu.guest_cr[4] & X86_CR4_OSXSAVE) ?
-                     bitmaskof(X86_FEATURE_OSXSAVE) : 0;
+                     cpufeat_mask(X86_FEATURE_OSXSAVE) : 0;
         break;
     case 0xb:
         /* Fix the x2APIC identifier. */
@@ -2242,7 +2241,7 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
            tsc_mode == TSC_MODE_DEFAULT and host_tsc_is_safe() returns 1 */
         if ( v->domain->arch.tsc_mode != TSC_MODE_DEFAULT ||
              !host_tsc_is_safe() )
-            *edx &= ~bitmaskof(X86_FEATURE_RDTSCP);
+            *edx &= ~cpufeat_mask(X86_FEATURE_RDTSCP);
         break;
     }
 }
@@ -2271,7 +2270,7 @@ int hvm_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
     fixed_range_base = (uint64_t *)v->arch.hvm_vcpu.mtrr.fixed_ranges;
 
     hvm_cpuid(1, &cpuid[0], &cpuid[1], &cpuid[2], &cpuid[3]);
-    mtrr = !!(cpuid[3] & bitmaskof(X86_FEATURE_MTRR));
+    mtrr = !!(cpuid[3] & cpufeat_mask(X86_FEATURE_MTRR));
 
     switch ( msr )
     {
@@ -2383,7 +2382,7 @@ int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content)
                (uint32_t)msr_content, (uint32_t)(msr_content >> 32));
 
     hvm_cpuid(1, &cpuid[0], &cpuid[1], &cpuid[2], &cpuid[3]);
-    mtrr = !!(cpuid[3] & bitmaskof(X86_FEATURE_MTRR));
+    mtrr = !!(cpuid[3] & cpufeat_mask(X86_FEATURE_MTRR));
 
     switch ( msr )
     {
index 47c2a7bbaeb60fcf3aae79efb58bd930e7c6cc9c..4014aaf3c597b194557e59cfe2d4d769c98addd4 100644 (file)
@@ -993,7 +993,6 @@ static void svm_fpu_dirty_intercept(void)
         vmcb_set_cr0(vmcb, vmcb_get_cr0(vmcb) & ~X86_CR0_TS);
 }
 
-#define bitmaskof(idx)  (1U << ((idx) & 31))
 static void svm_cpuid_intercept(
     unsigned int *eax, unsigned int *ebx,
     unsigned int *ecx, unsigned int *edx)
index ab903a354bc145dd525e225e7fc5d94dadcdf91b..e5564be9e85e7434d52745f9bef8ca9efedb5aab 100644 (file)
@@ -1479,7 +1479,6 @@ static void vmx_fpu_dirty_intercept(void)
     }
 }
 
-#define bitmaskof(idx)  (1U << ((idx) & 31))
 static void vmx_cpuid_intercept(
     unsigned int *eax, unsigned int *ebx,
     unsigned int *ecx, unsigned int *edx)
@@ -1496,9 +1495,9 @@ static void vmx_cpuid_intercept(
             /* SYSCALL is visible iff running in long mode. */
             hvm_get_segment_register(v, x86_seg_cs, &cs);
             if ( cs.attr.fields.l )
-                *edx |= bitmaskof(X86_FEATURE_SYSCALL);
+                *edx |= cpufeat_mask(X86_FEATURE_SYSCALL);
             else
-                *edx &= ~(bitmaskof(X86_FEATURE_SYSCALL));
+                *edx &= ~(cpufeat_mask(X86_FEATURE_SYSCALL));
 
             break;
     }
index 9b783ad1da7123b61e750cc179ec667531e81bc0..58134624d1a98ad23cd377e3188198014ddd8082 100644 (file)
 
 #define cpu_has(c, bit)                test_bit(bit, (c)->x86_capability)
 #define boot_cpu_has(bit)      test_bit(bit, boot_cpu_data.x86_capability)
+#define cpufeat_mask(idx)       (1u << ((idx) & 31))
 
 #ifdef __i386__
 #define cpu_has_vme            boot_cpu_has(X86_FEATURE_VME)