diff options
Diffstat (limited to 'include/linux/hyperv.h')
-rw-r--r-- | include/linux/hyperv.h | 16 |
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 | |||
426 | struct vmbus_channel_message_header { | 432 | struct 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 | ||
943 | static inline bool is_sub_channel(const struct vmbus_channel *c) | ||
944 | { | ||
945 | return c->offermsg.offer.sub_channel_index != 0; | ||
946 | } | ||
947 | |||
937 | static inline void set_channel_affinity_state(struct vmbus_channel *c, | 948 | static 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 */ |