diff options
author | delphij <delphij@FreeBSD.org> | 2014-09-13 02:15:31 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2014-09-13 02:15:31 +0000 |
commit | edc7ea3a5d36632b4b34de01da7109a81c9b39cf (patch) | |
tree | 90bd58d5fdad38f917effa8d5ce8a33002b06656 /sys/dev/hyperv/include | |
parent | 9bf7e49bfc27b3ec422834dbed634445004aa420 (diff) | |
download | FreeBSD-src-edc7ea3a5d36632b4b34de01da7109a81c9b39cf.zip FreeBSD-src-edc7ea3a5d36632b4b34de01da7109a81c9b39cf.tar.gz |
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.
This is a stable/10 candidate for inclusion with 10.1-RELEASE.
Submitted by: Wei Hu <weh microsoft com>
MFC after: 1 week
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__ */ |