summaryrefslogtreecommitdiffstats
path: root/sys/dev/hyperv/include/hyperv.h
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2014-09-25 20:34:13 +0000
committerdelphij <delphij@FreeBSD.org>2014-09-25 20:34:13 +0000
commit8e573ba7c9639e710661dce67b9171d569c8772d (patch)
tree4de670a3ea447f4c4dbc2993ebec26af3478058f /sys/dev/hyperv/include/hyperv.h
parentbb5379e9a2f748abed4de69c61b20523c4d77ac7 (diff)
downloadFreeBSD-src-8e573ba7c9639e710661dce67b9171d569c8772d.zip
FreeBSD-src-8e573ba7c9639e710661dce67b9171d569c8772d.tar.gz
MFC r271493,271688,271689,271696,271854:
Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft, many thanks for their continued support of FreeBSD. While I'm there, also implement a new build knob, WITHOUT_HYPERV to disable building and installing of the HyperV utilities when necessary. The HyperV utilities are only built for i386 and amd64 targets. Approved by: re (gjb)
Diffstat (limited to 'sys/dev/hyperv/include/hyperv.h')
-rw-r--r--sys/dev/hyperv/include/hyperv.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/sys/dev/hyperv/include/hyperv.h b/sys/dev/hyperv/include/hyperv.h
index 4257b37..8a45d89 100644
--- a/sys/dev/hyperv/include/hyperv.h
+++ b/sys/dev/hyperv/include/hyperv.h
@@ -795,5 +795,34 @@ hv_get_phys_addr(void *virt)
return (ret);
}
+
+/**
+ * KVP related structures
+ *
+ */
+typedef struct hv_vmbus_service {
+ hv_guid guid; /* Hyper-V GUID */
+ char *name; /* name of service */
+ boolean_t enabled; /* service enabled */
+ hv_work_queue *work_queue; /* background work queue */
+
+ /*
+ * function to initialize service
+ */
+ int (*init)(struct hv_vmbus_service *);
+
+ /*
+ * function to process Hyper-V messages
+ */
+ void (*callback)(void *);
+} hv_vmbus_service;
+
+extern uint8_t* receive_buffer[];
+extern hv_vmbus_service service_table[];
+
+void hv_kvp_callback(void *context);
+int hv_kvp_init(hv_vmbus_service *serv);
+void hv_kvp_deinit(void);
+
#endif /* __HYPERV_H__ */
OpenPOWER on IntegriCloud