2008-10-27 20:41:46 +03:00
/*
* Copyright ( C ) 2008 , VMware , Inc .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful , but
* WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE , GOOD TITLE or
* NON INFRINGEMENT . See the GNU General Public License for more
* details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA .
*
*/
2010-05-08 03:57:28 +04:00
# ifndef _ASM_X86_HYPERVISOR_H
# define _ASM_X86_HYPERVISOR_H
2008-10-27 20:41:46 +03:00
extern void init_hypervisor ( struct cpuinfo_x86 * c ) ;
2009-08-20 19:06:25 +04:00
extern void init_hypervisor_platform ( void ) ;
2008-10-27 20:41:46 +03:00
2010-05-08 03:57:28 +04:00
/*
* x86 hypervisor information
*/
struct hypervisor_x86 {
/* Hypervisor name */
const char * name ;
/* Detection routine */
bool ( * detect ) ( void ) ;
/* Adjust CPU feature bits (run once per CPU) */
void ( * set_cpu_features ) ( struct cpuinfo_x86 * ) ;
/* Platform setup (run once per boot) */
void ( * init_platform ) ( void ) ;
} ;
extern const struct hypervisor_x86 * x86_hyper ;
/* Recognized hypervisors */
extern const struct hypervisor_x86 x86_hyper_vmware ;
extern const struct hypervisor_x86 x86_hyper_ms_hyperv ;
2010-05-14 15:39:33 +04:00
extern const struct hypervisor_x86 x86_hyper_xen_hvm ;
2010-05-08 03:57:28 +04:00
2008-10-27 20:41:46 +03:00
# endif