Lines Matching defs:ring_info

74 hv_get_next_write_location(struct hv_ring_buffer_info *ring_info)
76 u32 next = ring_info->ring_buffer->write_index;
83 hv_set_next_write_location(struct hv_ring_buffer_info *ring_info,
86 ring_info->ring_buffer->write_index = next_write_location;
91 hv_get_ring_buffersize(const struct hv_ring_buffer_info *ring_info)
93 return ring_info->ring_datasize;
98 hv_get_ring_bufferindices(struct hv_ring_buffer_info *ring_info)
100 return (u64)ring_info->ring_buffer->write_index << 32;
108 struct hv_ring_buffer_info *ring_info,
113 void *ring_buffer = hv_get_ring_buffer(ring_info);
114 u32 ring_buffer_size = hv_get_ring_buffersize(ring_info);
149 int hv_ringbuffer_get_debuginfo(struct hv_ring_buffer_info *ring_info,
155 mutex_lock(&ring_info->ring_buffer_mutex);
157 if (!ring_info->ring_buffer) {
158 mutex_unlock(&ring_info->ring_buffer_mutex);
162 hv_get_ringbuffer_availbytes(ring_info,
167 debug_info->current_read_index = ring_info->ring_buffer->read_index;
168 debug_info->current_write_index = ring_info->ring_buffer->write_index;
170 = ring_info->ring_buffer->interrupt_mask;
171 mutex_unlock(&ring_info->ring_buffer_mutex);
185 int hv_ringbuffer_init(struct hv_ring_buffer_info *ring_info,
208 ring_info->ring_buffer = (struct hv_ring_buffer *)
213 if (!ring_info->ring_buffer)
220 memset(ring_info->ring_buffer, 0, HV_HYP_PAGE_SIZE);
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;
237 ring_info->pkt_buffer = kzalloc(max_pkt_size, GFP_KERNEL);
238 if (!ring_info->pkt_buffer)
240 ring_info->pkt_buffer_size = max_pkt_size;
243 spin_lock_init(&ring_info->ring_lock);
249 void hv_ringbuffer_cleanup(struct hv_ring_buffer_info *ring_info)
251 mutex_lock(&ring_info->ring_buffer_mutex);
252 vunmap(ring_info->ring_buffer);
253 ring_info->ring_buffer = NULL;
254 mutex_unlock(&ring_info->ring_buffer_mutex);
256 kfree(ring_info->pkt_buffer);
257 ring_info->pkt_buffer = NULL;
258 ring_info->pkt_buffer_size = 0;