diff options
author | delphij <delphij@FreeBSD.org> | 2014-09-30 17:54:57 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2014-09-30 17:54:57 +0000 |
commit | ee5d2040514496e028c74f870e0fe37ff731eea6 (patch) | |
tree | 3d5fc0f492a59bc673ae0bd7830fcb5f3be62b51 /sys/dev/hyperv/include | |
parent | d2b170eeddec67d497373ad60908e5094d294fe1 (diff) | |
download | FreeBSD-src-ee5d2040514496e028c74f870e0fe37ff731eea6.zip FreeBSD-src-ee5d2040514496e028c74f870e0fe37ff731eea6.tar.gz |
MFC r271493,271688-271689,271696,271854,272139-272143:
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')
-rw-r--r-- | sys/dev/hyperv/include/hyperv.h | 29 |
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__ */ |