diff options
Diffstat (limited to 'include/linux/hyperv.h')
-rw-r--r-- | include/linux/hyperv.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 5852545e6bba..68ed7f7e1fc9 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h | |||
@@ -274,6 +274,33 @@ struct hv_ring_buffer_debug_info { | |||
274 | u32 bytes_avail_towrite; | 274 | u32 bytes_avail_towrite; |
275 | }; | 275 | }; |
276 | 276 | ||
277 | |||
278 | /* | ||
279 | * | ||
280 | * hv_get_ringbuffer_availbytes() | ||
281 | * | ||
282 | * Get number of bytes available to read and to write to | ||
283 | * for the specified ring buffer | ||
284 | */ | ||
285 | static inline void | ||
286 | hv_get_ringbuffer_availbytes(struct hv_ring_buffer_info *rbi, | ||
287 | u32 *read, u32 *write) | ||
288 | { | ||
289 | u32 read_loc, write_loc, dsize; | ||
290 | |||
291 | smp_read_barrier_depends(); | ||
292 | |||
293 | /* Capture the read/write indices before they changed */ | ||
294 | read_loc = rbi->ring_buffer->read_index; | ||
295 | write_loc = rbi->ring_buffer->write_index; | ||
296 | dsize = rbi->ring_datasize; | ||
297 | |||
298 | *write = write_loc >= read_loc ? dsize - (write_loc - read_loc) : | ||
299 | read_loc - write_loc; | ||
300 | *read = dsize - *write; | ||
301 | } | ||
302 | |||
303 | |||
277 | /* | 304 | /* |
278 | * We use the same version numbering for all Hyper-V modules. | 305 | * We use the same version numbering for all Hyper-V modules. |
279 | * | 306 | * |
@@ -1035,8 +1062,10 @@ struct hyperv_service_callback { | |||
1035 | void (*callback) (void *context); | 1062 | void (*callback) (void *context); |
1036 | }; | 1063 | }; |
1037 | 1064 | ||
1065 | #define MAX_SRV_VER 0x7ffffff | ||
1038 | extern void vmbus_prep_negotiate_resp(struct icmsg_hdr *, | 1066 | extern void vmbus_prep_negotiate_resp(struct icmsg_hdr *, |
1039 | struct icmsg_negotiate *, u8 *); | 1067 | struct icmsg_negotiate *, u8 *, int, |
1068 | int); | ||
1040 | 1069 | ||
1041 | int hv_kvp_init(struct hv_util_service *); | 1070 | int hv_kvp_init(struct hv_util_service *); |
1042 | void hv_kvp_deinit(void); | 1071 | void hv_kvp_deinit(void); |