iPXE
hyperv.h
Go to the documentation of this file.
00001 #ifndef _HYPERV_H
00002 #define _HYPERV_H
00003 
00004 /** @file
00005  *
00006  * Hyper-V driver
00007  *
00008  */
00009 
00010 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
00011 
00012 /** Get vendor identification */
00013 #define HV_CPUID_VENDOR_ID 0x40000000UL
00014 
00015 /** Get interface identification */
00016 #define HV_CPUID_INTERFACE_ID 0x40000001UL
00017 
00018 /** Get hypervisor identification */
00019 #define HV_CPUID_HYPERVISOR_ID 0x40000002UL
00020 
00021 /** Get hypervisor features */
00022 #define HV_CPUID_FEATURES 0x40000003UL
00023 
00024 /** Time reference counter MSR is available */
00025 #define HV_FEATURES_AVAIL_TIME_REF_COUNT_MSR 0x00000002UL
00026 
00027 /** SynIC MSRs are available */
00028 #define HV_FEATURES_AVAIL_SYNIC_MSR 0x00000004UL
00029 
00030 /** Hypercall MSRs are available */
00031 #define HV_FEATURES_AVAIL_HYPERCALL_MSR 0x00000020UL
00032 
00033 /** Guest may post messages */
00034 #define HV_FEATURES_PERM_POST_MESSAGES 0x00000010UL
00035 
00036 /** Guest may signal events */
00037 #define HV_FEATURES_PERM_SIGNAL_EVENTS 0x00000020UL
00038 
00039 /** Guest OS identity MSR */
00040 #define HV_X64_MSR_GUEST_OS_ID 0x40000000UL
00041 
00042 /** Hypercall page MSR */
00043 #define HV_X64_MSR_HYPERCALL 0x40000001UL
00044 
00045 /** Time reference MSR */
00046 #define HV_X64_MSR_TIME_REF_COUNT 0x40000020UL
00047 
00048 /** SynIC control MSR */
00049 #define HV_X64_MSR_SCONTROL 0x40000080UL
00050 
00051 /** SynIC event flags page MSR */
00052 #define HV_X64_MSR_SIEFP 0x40000082UL
00053 
00054 /** SynIC message page MSR */
00055 #define HV_X64_MSR_SIMP 0x40000083UL
00056 
00057 /** SynIC end of message MSR */
00058 #define HV_X64_MSR_EOM 0x40000084UL
00059 
00060 /** SynIC interrupt source MSRs */
00061 #define HV_X64_MSR_SINT(x) ( 0x40000090UL + (x) )
00062 
00063 #endif /* _HYPERV_H */