Lines Matching refs:ring_info
74 hv_get_next_write_location(struct hv_ring_buffer_info *ring_info) in hv_get_next_write_location() argument
76 u32 next = ring_info->ring_buffer->write_index; in hv_get_next_write_location()
83 hv_set_next_write_location(struct hv_ring_buffer_info *ring_info, in hv_set_next_write_location() argument
86 ring_info->ring_buffer->write_index = next_write_location; in hv_set_next_write_location()
91 hv_get_ring_buffersize(const struct hv_ring_buffer_info *ring_info) in hv_get_ring_buffersize() argument
93 return ring_info->ring_datasize; in hv_get_ring_buffersize()
98 hv_get_ring_bufferindices(struct hv_ring_buffer_info *ring_info) in hv_get_ring_bufferindices() argument
100 return (u64)ring_info->ring_buffer->write_index << 32; in hv_get_ring_bufferindices()
108 struct hv_ring_buffer_info *ring_info, in hv_copyto_ringbuffer() argument
113 void *ring_buffer = hv_get_ring_buffer(ring_info); in hv_copyto_ringbuffer()
114 u32 ring_buffer_size = hv_get_ring_buffersize(ring_info); in hv_copyto_ringbuffer()
149 int hv_ringbuffer_get_debuginfo(struct hv_ring_buffer_info *ring_info, in hv_ringbuffer_get_debuginfo() argument
155 mutex_lock(&ring_info->ring_buffer_mutex); in hv_ringbuffer_get_debuginfo()
157 if (!ring_info->ring_buffer) { in hv_ringbuffer_get_debuginfo()
158 mutex_unlock(&ring_info->ring_buffer_mutex); in hv_ringbuffer_get_debuginfo()
162 hv_get_ringbuffer_availbytes(ring_info, in hv_ringbuffer_get_debuginfo()
167 debug_info->current_read_index = ring_info->ring_buffer->read_index; in hv_ringbuffer_get_debuginfo()
168 debug_info->current_write_index = ring_info->ring_buffer->write_index; in hv_ringbuffer_get_debuginfo()
170 = ring_info->ring_buffer->interrupt_mask; in hv_ringbuffer_get_debuginfo()
171 mutex_unlock(&ring_info->ring_buffer_mutex); in hv_ringbuffer_get_debuginfo()
185 int hv_ringbuffer_init(struct hv_ring_buffer_info *ring_info, in hv_ringbuffer_init() argument
212 ring_info->ring_buffer = (struct hv_ring_buffer *) in hv_ringbuffer_init()
217 if (!ring_info->ring_buffer) in hv_ringbuffer_init()
221 memset(ring_info->ring_buffer, 0x00, PAGE_SIZE * page_cnt); in hv_ringbuffer_init()
234 ring_info->ring_buffer = (struct hv_ring_buffer *) in hv_ringbuffer_init()
239 if (!ring_info->ring_buffer) in hv_ringbuffer_init()
244 ring_info->ring_buffer->read_index = in hv_ringbuffer_init()
245 ring_info->ring_buffer->write_index = 0; in hv_ringbuffer_init()
248 ring_info->ring_buffer->feature_bits.value = 1; in hv_ringbuffer_init()
250 ring_info->ring_size = page_cnt << PAGE_SHIFT; in hv_ringbuffer_init()
251 ring_info->ring_size_div10_reciprocal = in hv_ringbuffer_init()
252 reciprocal_value(ring_info->ring_size / 10); in hv_ringbuffer_init()
253 ring_info->ring_datasize = ring_info->ring_size - in hv_ringbuffer_init()
255 ring_info->priv_read_index = 0; in hv_ringbuffer_init()
259 ring_info->pkt_buffer = kzalloc(max_pkt_size, GFP_KERNEL); in hv_ringbuffer_init()
260 if (!ring_info->pkt_buffer) in hv_ringbuffer_init()
262 ring_info->pkt_buffer_size = max_pkt_size; in hv_ringbuffer_init()
265 spin_lock_init(&ring_info->ring_lock); in hv_ringbuffer_init()
271 void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info) in hv_ringbuffer_cleanup() argument
273 mutex_lock(&ring_info->ring_buffer_mutex); in hv_ringbuffer_cleanup()
274 vunmap(ring_info->ring_buffer); in hv_ringbuffer_cleanup()
275 ring_info->ring_buffer = NULL; in hv_ringbuffer_cleanup()
276 mutex_unlock(&ring_info->ring_buffer_mutex); in hv_ringbuffer_cleanup()
278 kfree(ring_info->pkt_buffer); in hv_ringbuffer_cleanup()
279 ring_info->pkt_buffer = NULL; in hv_ringbuffer_cleanup()
280 ring_info->pkt_buffer_size = 0; in hv_ringbuffer_cleanup()