16 #define HV_INTERFACE_ID 0x31237648 38 #define HV_GUEST_OS_ID_IPXE ( ( 1ULL << 63 ) | ( 0x18aeULL << 48 ) ) 45 #define HV_GUEST_OS_ID_UEFI ( 1ULL << 40 ) 48 #define HV_HYPERCALL_ENABLE 0x00000001UL 51 #define HV_SCONTROL_ENABLE 0x00000001UL 54 #define HV_SIEFP_ENABLE 0x00000001UL 57 #define HV_SIMP_ENABLE 0x00000001UL 60 #define HV_SINT_AUTO_EOI 0x00020000UL 63 #define HV_SINT_MASKED 0x00010000UL 66 #define HV_SINT_VECTOR(x) ( (x) << 0 ) 69 #define HV_SINT_VECTOR_MASK HV_SINT_VECTOR ( 0xff ) 72 #define HV_SINT_MAX 15 75 #define HV_POST_MESSAGE 0x005c 116 #define HV_SIGNAL_EVENT 0x005d 214 #include <bits/hyperv.h> 227 return ( last_pfn - first_pfn + 1 );
uint16_t reserved
Reserved.
uint8_t len
Length of message.
uint8_t reserved_a[4]
Reserved.
uint16_t flag
Flag number.
void hv_disable_sint(struct hv_hypervisor *hv, unsigned int sintx)
Disable synthetic interrupt.
uint32_t len
Length of message.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
unsigned long long uint64_t
struct hv_event * event
Event flag page.
void * hypercall
Hypercall page.
#define PAGE_SIZE
Page size.
uint8_t data[240]
Message.
uint32_t reserved
Padding.
struct hv_synic __attribute__
uint8_t reserved_b[536]
Reserved.
uint8_t reserved_c[256]
Reserved.
uint32_t id
Connection ID.
uint32_t len
Length of message.
int hv_signal_event(struct hv_hypervisor *hv, unsigned int id, unsigned int flag)
Signal event.
struct hv_message received
Received message.
uint16_t reserved
Reserved.
uint16 latency[4][32]
Latencies.
int hv_alloc_pages(struct hv_hypervisor *hv,...)
Allocate zeroed pages.
uint8_t reserved_d[1984]
Reserved.
struct hv_signal_event signalled
Signalled event.
uint8_t flags[256]
Event flags.
uint32_t id
Connection ID.
static unsigned int hv_pfn_count(physaddr_t data, size_t len)
Calculate the number of pages covering an address range.
struct hv_message * message
Message page.
void hv_free_pages(struct hv_hypervisor *hv,...)
Free pages.
uint32_t armed
Armed events.
int hv_wait_for_message(struct hv_hypervisor *hv, unsigned int sintx)
Wait for received message.
union hv_message_buffer * message
Message buffer.
void hv_enable_sint(struct hv_hypervisor *hv, unsigned int sintx)
Enable synthetic interrupt.
uint8_t data[240]
Message.
struct hv_monitor_parameter param[4][32]
Parameters.
uint8_t data[240]
Message.
uint32_t id
Connection ID.
struct hv_post_message posted
Posted message.
struct vmbus * vmbus
Virtual machine bus.
struct hv_monitor_trigger trigger[4]
Trigger groups.
uint32_t pending
Pending events.
uint16_t flag
Flag number.
int hv_post_message(struct hv_hypervisor *hv, unsigned int id, unsigned int type, const void *data, size_t len)
Post message.
uint16_t reserved
Padding.
A synthetic interrupt controller.
uint16_t flag
Flag number.
struct hv_synic synic
Synthetic interrupt controller (SynIC)