Lines Matching refs:rbi
52 struct hv_ring_buffer_info *rbi = &channel->outbound;
55 if (READ_ONCE(rbi->ring_buffer->interrupt_mask))
64 if (old_write == READ_ONCE(rbi->ring_buffer->read_index)) {
140 hv_get_ringbuffer_availbytes(const struct hv_ring_buffer_info *rbi,
146 read_loc = READ_ONCE(rbi->ring_buffer->read_index);
147 write_loc = READ_ONCE(rbi->ring_buffer->write_index);
148 dsize = rbi->ring_datasize;
391 static u32 hv_pkt_iter_avail(const struct hv_ring_buffer_info *rbi)
393 u32 priv_read_loc = rbi->priv_read_index;
403 write_loc = virt_load_acquire(&rbi->ring_buffer->write_index);
408 return (rbi->ring_datasize - priv_read_loc) + write_loc;
418 struct hv_ring_buffer_info *rbi = &channel->inbound;
422 if (hv_pkt_iter_avail(rbi) < sizeof(struct vmpacket_descriptor))
425 desc = hv_get_ring_buffer(rbi) + rbi->priv_read_index;
443 struct hv_ring_buffer_info *rbi = &channel->inbound;
445 u32 dsize = rbi->ring_datasize;
449 rbi->priv_read_index += packetlen + VMBUS_PKT_TRAILER;
450 if (rbi->priv_read_index >= dsize)
451 rbi->priv_read_index -= dsize;
459 static u32 hv_pkt_iter_bytes_read(const struct hv_ring_buffer_info *rbi,
462 if (rbi->priv_read_index >= start_read_index)
463 return rbi->priv_read_index - start_read_index;
465 return rbi->ring_datasize - start_read_index +
466 rbi->priv_read_index;
491 struct hv_ring_buffer_info *rbi = &channel->inbound;
500 start_read_index = rbi->ring_buffer->read_index;
501 rbi->ring_buffer->read_index = rbi->priv_read_index;
508 if (!rbi->ring_buffer->feature_bits.feat_pending_send_sz)
527 pending_sz = READ_ONCE(rbi->ring_buffer->pending_send_sz);
536 curr_write_sz = hv_get_bytes_to_write(rbi);
537 bytes_read = hv_pkt_iter_bytes_read(rbi, start_read_index);