bool __read_mostly xen_guest;
-static __read_mostly uint32_t xen_cpuid_base;
+uint32_t __read_mostly xen_cpuid_base;
extern char hypercall_page[];
static struct rangeset *mem;
return rangeset_remove_range(mem, mfn_x(mfn), mfn_x(mfn));
}
-uint32_t hypervisor_cpuid_base(void)
-{
- return xen_cpuid_base;
-}
-
static void ap_resume(void *unused)
{
map_vcpuinfo();
if ( !pv_shim )
return 0;
- cpuid(hypervisor_cpuid_base() + 4, &eax, &ebx, &ecx, &edx);
+ cpuid(xen_cpuid_base + 4, &eax, &ebx, &ecx, &edx);
return (eax & XEN_HVM_CPUID_DOMID_PRESENT) ? ecx : 1;
}
extern bool xen_guest;
extern bool pv_console;
+extern uint32_t xen_cpuid_base;
void probe_hypervisor(void);
void hypervisor_setup(void);
void hypervisor_ap_setup(void);
int hypervisor_alloc_unused_page(mfn_t *mfn);
int hypervisor_free_unused_page(mfn_t mfn);
-uint32_t hypervisor_cpuid_base(void);
void hypervisor_resume(void);
DECLARE_PER_CPU(unsigned int, vcpu_id);