diff options
Diffstat (limited to 'drivers/hv/hyperv_vmbus.h')
-rw-r--r-- | drivers/hv/hyperv_vmbus.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h index c8e27e0fdc99..f40a5a935ab6 100644 --- a/drivers/hv/hyperv_vmbus.h +++ b/drivers/hv/hyperv_vmbus.h | |||
@@ -685,6 +685,23 @@ struct vmbus_msginfo { | |||
685 | 685 | ||
686 | extern struct vmbus_connection vmbus_connection; | 686 | extern struct vmbus_connection vmbus_connection; |
687 | 687 | ||
688 | enum vmbus_message_handler_type { | ||
689 | /* The related handler can sleep. */ | ||
690 | VMHT_BLOCKING = 0, | ||
691 | |||
692 | /* The related handler must NOT sleep. */ | ||
693 | VMHT_NON_BLOCKING = 1, | ||
694 | }; | ||
695 | |||
696 | struct vmbus_channel_message_table_entry { | ||
697 | enum vmbus_channel_message_type message_type; | ||
698 | enum vmbus_message_handler_type handler_type; | ||
699 | void (*message_handler)(struct vmbus_channel_message_header *msg); | ||
700 | }; | ||
701 | |||
702 | extern struct vmbus_channel_message_table_entry | ||
703 | channel_message_table[CHANNELMSG_COUNT]; | ||
704 | |||
688 | /* General vmbus interface */ | 705 | /* General vmbus interface */ |
689 | 706 | ||
690 | struct hv_device *vmbus_device_create(const uuid_le *type, | 707 | struct hv_device *vmbus_device_create(const uuid_le *type, |