summaryrefslogtreecommitdiffstats
path: root/include/linux/hyperv.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/hyperv.h')
-rw-r--r--include/linux/hyperv.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 2afe6fdc1dda..b4a017093b69 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -245,7 +245,10 @@ struct vmbus_channel_offer {
245 } pipe; 245 } pipe;
246 } u; 246 } u;
247 /* 247 /*
248 * The sub_channel_index is defined in win8. 248 * The sub_channel_index is defined in Win8: a value of zero means a
249 * primary channel and a value of non-zero means a sub-channel.
250 *
251 * Before Win8, the field is reserved, meaning it's always zero.
249 */ 252 */
250 u16 sub_channel_index; 253 u16 sub_channel_index;
251 u16 reserved3; 254 u16 reserved3;
@@ -423,6 +426,9 @@ enum vmbus_channel_message_type {
423 CHANNELMSG_COUNT 426 CHANNELMSG_COUNT
424}; 427};
425 428
429/* Hyper-V supports about 2048 channels, and the RELIDs start with 1. */
430#define INVALID_RELID U32_MAX
431
426struct vmbus_channel_message_header { 432struct vmbus_channel_message_header {
427 enum vmbus_channel_message_type msgtype; 433 enum vmbus_channel_message_type msgtype;
428 u32 padding; 434 u32 padding;
@@ -934,6 +940,11 @@ static inline bool is_hvsock_channel(const struct vmbus_channel *c)
934 VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER); 940 VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
935} 941}
936 942
943static inline bool is_sub_channel(const struct vmbus_channel *c)
944{
945 return c->offermsg.offer.sub_channel_index != 0;
946}
947
937static inline void set_channel_affinity_state(struct vmbus_channel *c, 948static inline void set_channel_affinity_state(struct vmbus_channel *c,
938 enum hv_numa_policy policy) 949 enum hv_numa_policy policy)
939{ 950{
@@ -1149,6 +1160,9 @@ struct hv_driver {
1149 int (*remove)(struct hv_device *); 1160 int (*remove)(struct hv_device *);
1150 void (*shutdown)(struct hv_device *); 1161 void (*shutdown)(struct hv_device *);
1151 1162
1163 int (*suspend)(struct hv_device *);
1164 int (*resume)(struct hv_device *);
1165
1152}; 1166};
1153 1167
1154/* Base device object */ 1168/* Base device object */