Lines Matching defs:ring_info
72 hv_get_next_write_location(struct hv_ring_buffer_info *ring_info)
74 u32 next = ring_info->ring_buffer->write_index;
81 hv_set_next_write_location(struct hv_ring_buffer_info *ring_info,
84 ring_info->ring_buffer->write_index = next_write_location;
89 hv_set_next_read_location(struct hv_ring_buffer_info *ring_info,
92 ring_info->ring_buffer->read_index = next_read_location;
93 ring_info->priv_read_index = next_read_location;
98 hv_get_ring_buffersize(const struct hv_ring_buffer_info *ring_info)
100 return ring_info->ring_datasize;
105 hv_get_ring_bufferindices(struct hv_ring_buffer_info *ring_info)
107 return (u64)ring_info->ring_buffer->write_index << 32;
115 struct hv_ring_buffer_info *ring_info,
120 void *ring_buffer = hv_get_ring_buffer(ring_info);
121 u32 ring_buffer_size = hv_get_ring_buffersize(ring_info);
156 int hv_ringbuffer_get_debuginfo(struct hv_ring_buffer_info *ring_info,
162 mutex_lock(&ring_info->ring_buffer_mutex);
164 if (!ring_info->ring_buffer) {
165 mutex_unlock(&ring_info->ring_buffer_mutex);
169 hv_get_ringbuffer_availbytes(ring_info,
174 debug_info->current_read_index = ring_info->ring_buffer->read_index;
175 debug_info->current_write_index = ring_info->ring_buffer->write_index;
177 = ring_info->ring_buffer->interrupt_mask;
178 mutex_unlock(&ring_info->ring_buffer_mutex);
192 int hv_ringbuffer_init(struct hv_ring_buffer_info *ring_info,
213 ring_info->ring_buffer = (struct hv_ring_buffer *)
219 if (!ring_info->ring_buffer)
222 ring_info->ring_buffer->read_index =
223 ring_info->ring_buffer->write_index = 0;
226 ring_info->ring_buffer->feature_bits.value = 1;
228 ring_info->ring_size = page_cnt << PAGE_SHIFT;
229 ring_info->ring_size_div10_reciprocal =
230 reciprocal_value(ring_info->ring_size / 10);
231 ring_info->ring_datasize = ring_info->ring_size -
233 ring_info->priv_read_index = 0;
235 spin_lock_init(&ring_info->ring_lock);
241 void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info)
243 mutex_lock(&ring_info->ring_buffer_mutex);
244 vunmap(ring_info->ring_buffer);
245 ring_info->ring_buffer = NULL;
246 mutex_unlock(&ring_info->ring_buffer_mutex);