Merge branches 'acpi-soc', 'acpi-misc', 'acpi-pci' and 'device-properties'
[cascardo/linux.git] / arch / x86 / kvm / x86.h
index f2afa5f..007940f 100644 (file)
@@ -179,6 +179,7 @@ int kvm_mtrr_set_msr(struct kvm_vcpu *vcpu, u32 msr, u64 data);
 int kvm_mtrr_get_msr(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata);
 bool kvm_mtrr_check_gfn_range_consistency(struct kvm_vcpu *vcpu, gfn_t gfn,
                                          int page_num);
+bool kvm_vector_hashing_enabled(void);
 
 #define KVM_SUPPORTED_XCR0     (XFEATURE_MASK_FP | XFEATURE_MASK_SSE \
                                | XFEATURE_MASK_YMM | XFEATURE_MASK_BNDREGS \
@@ -192,4 +193,19 @@ extern unsigned int min_timer_period_us;
 extern unsigned int lapic_timer_advance_ns;
 
 extern struct static_key kvm_no_apic_vcpu;
+
+/* Same "calling convention" as do_div:
+ * - divide (n << 32) by base
+ * - put result in n
+ * - return remainder
+ */
+#define do_shl32_div32(n, base)                                        \
+       ({                                                      \
+           u32 __quot, __rem;                                  \
+           asm("divl %2" : "=a" (__quot), "=d" (__rem)         \
+                       : "rm" (base), "0" (0), "1" ((u32) n)); \
+           n = __quot;                                         \
+           __rem;                                              \
+        })
+
 #endif