x86/hvm: Make DRNG feature visible in CPUID
authorYang, Wei <wei.y.yang@intel.com>
Tue, 14 Jun 2011 11:44:48 +0000 (12:44 +0100)
committerYang, Wei <wei.y.yang@intel.com>
Tue, 14 Jun 2011 11:44:48 +0000 (12:44 +0100)
This patch exposes DRNG feature to HVM guests.

The RDRAND instruction can provide software with sequences of
random numbers generated from white noise.

Signed-off-by: Yang, Wei <wei.y.yang@intel.com>
tools/libxc/xc_cpufeature.h
tools/libxc/xc_cpuid_x86.c
xen/include/asm-x86/cpufeature.h

index a110e6ef01e094d15c10e293f8d505f0493d97fa..b1941f9956d7262652802fbc69995dd55795acf6 100644 (file)
@@ -87,6 +87,7 @@
 #define X86_FEATURE_XSAVE       26 /* XSAVE/XRSTOR/XSETBV/XGETBV */
 #define X86_FEATURE_AVX         28 /* Advanced Vector Extensions */
 #define X86_FEATURE_F16C        29 /* Half-precision convert instruction */
+#define X86_FEATURE_RDRAND      30 /* Digital Random Number Generator */
 #define X86_FEATURE_HYPERVISOR  31 /* Running under some hypervisor */
 
 /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001 */
index aae6882653e37dfc989c7303393b49122062f8fb..287b1e77898975b1359357b5a8f3629f47726e59 100644 (file)
@@ -314,6 +314,7 @@ static void xc_cpuid_hvm_policy(
                     bitmaskof(X86_FEATURE_POPCNT) |
                     bitmaskof(X86_FEATURE_AES) |
                     bitmaskof(X86_FEATURE_F16C) |
+                    bitmaskof(X86_FEATURE_RDRAND) |
                     ((xfeature_mask != 0) ?
                      (bitmaskof(X86_FEATURE_AVX) |
                       bitmaskof(X86_FEATURE_XSAVE)) : 0));
index 8ef7978e4d4404a7ce1c4c3a31b6bc7d9a0822e9..f76a08f5be035fb5b94a118572cdf35ff1b6690b 100644 (file)
 #define X86_FEATURE_OSXSAVE    (4*32+27) /* OSXSAVE */
 #define X86_FEATURE_AVX        (4*32+28) /* Advanced Vector Extensions */
 #define X86_FEATURE_F16C       (4*32+29) /* Half-precision convert instruction */
+#define X86_FEATURE_RDRAND     (4*32+30) /* Digital Random Number Generator */
 #define X86_FEATURE_HYPERVISOR (4*32+31) /* Running under some hypervisor */
 
 /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */