ring_buffer
return (u64)ring_info->ring_buffer->write_index << 32;
void *ring_buffer = hv_get_ring_buffer(ring_info);
memcpy(ring_buffer + start_write_offset, src, srclen);
read_loc = READ_ONCE(rbi->ring_buffer->read_index);
write_loc = READ_ONCE(rbi->ring_buffer->write_index);
if (!ring_info->ring_buffer) {
debug_info->current_read_index = ring_info->ring_buffer->read_index;
debug_info->current_write_index = ring_info->ring_buffer->write_index;
= ring_info->ring_buffer->interrupt_mask;
ring_info->ring_buffer = (struct hv_ring_buffer *)
if (!ring_info->ring_buffer)
memset(ring_info->ring_buffer, 0, HV_HYP_PAGE_SIZE);
ring_info->ring_buffer->read_index =
ring_info->ring_buffer->write_index = 0;
ring_info->ring_buffer->feature_bits.value = 1;
vunmap(ring_info->ring_buffer);
ring_info->ring_buffer = NULL;
write_loc = virt_load_acquire(&rbi->ring_buffer->write_index);
if (READ_ONCE(rbi->ring_buffer->interrupt_mask))
start_read_index = rbi->ring_buffer->read_index;
rbi->ring_buffer->read_index = rbi->priv_read_index;
if (!rbi->ring_buffer->feature_bits.feat_pending_send_sz)
pending_sz = READ_ONCE(rbi->ring_buffer->pending_send_sz);
if (old_write == READ_ONCE(rbi->ring_buffer->read_index)) {
u32 next = ring_info->ring_buffer->write_index;
ring_info->ring_buffer->write_index = next_write_location;
if (!rbi->ring_buffer) {
ret = sprintf(buf, "%u\n", rbi->ring_buffer->interrupt_mask);
if (!rbi->ring_buffer) {
ret = sprintf(buf, "%u\n", rbi->ring_buffer->interrupt_mask);
if (!rbi->ring_buffer) {
if (!rbi->ring_buffer) {
struct vpu_buf *ring_buffer, dma_addr_t wr_ptr)
size_t offset = wr_ptr - ring_buffer->daddr;
if (wr_ptr + buffer_size > ring_buffer->daddr + ring_buffer->size) {
size = ring_buffer->daddr + ring_buffer->size - wr_ptr;
ret = wave5_vdi_write_memory(inst->dev, ring_buffer, offset, (u8 *)buffer, size);
ret = wave5_vdi_write_memory(inst->dev, ring_buffer, 0, (u8 *)buffer + size,
ret = wave5_vdi_write_memory(inst->dev, ring_buffer, offset, (u8 *)buffer,
struct vpu_buf *ring_buffer = &inst->bitstream_vbuf;
ret = write_to_ringbuffer(inst, src_buf, src_size, ring_buffer, wr_ptr);
struct vpu_buf *ring_buffer = &inst->bitstream_vbuf;
ring_buffer->size = ALIGN(inst->src_fmt.plane_fmt[0].sizeimage, 1024) * 4;
ret = wave5_vdi_allocate_dma_memory(inst->dev, ring_buffer);
__func__, ring_buffer->size, ret);
inst->last_rd_ptr = ring_buffer->daddr;
if (strlen(ring_buffer) > 0) {
dtrace_dot(ring_buffer);
memset(ring_buffer, 0, sizeof(ring_buffer));
static char ring_buffer[200];
snprintf(ring_buffer, sizeof(ring_buffer),
dtrace_dot(ring_buffer);
void *ring_buffer = page_address(channel->ringbuffer_page);
return vm_iomap_memory(vma, virt_to_phys(ring_buffer),
void *ring_buffer;
ring_buffer = page_address(channel->ringbuffer_page);
= (uintptr_t)virt_to_phys(ring_buffer);
channel->inbound.ring_buffer->interrupt_mask = !irq_state;
char *ring_buffer;
kfree(dev->ring_buffer);
actual_buffer = (size_t *)(dev->ring_buffer + dev->ring_head * (sizeof(size_t)+dev->interrupt_in_endpoint_size));
actual_buffer = (size_t *)(dev->ring_buffer + dev->ring_tail * (sizeof(size_t)+dev->interrupt_in_endpoint_size));
dev->ring_buffer = kcalloc(ring_buffer_size,
if (!dev->ring_buffer)
c->outbound.ring_buffer->pending_send_sz = size;
return ring_info->ring_buffer->buffer;
rbi->ring_buffer->interrupt_mask = 1;
rbi->ring_buffer->interrupt_mask = 0;
struct hv_ring_buffer *ring_buffer;
read_loc = rbi->ring_buffer->read_index;
write_loc = READ_ONCE(rbi->ring_buffer->write_index);
read_loc = READ_ONCE(rbi->ring_buffer->read_index);
write_loc = rbi->ring_buffer->write_index;
struct ring_buffer;
LIBBPF_API struct ring_buffer *
LIBBPF_API void ring_buffer__free(struct ring_buffer *rb);
LIBBPF_API int ring_buffer__add(struct ring_buffer *rb, int map_fd,
LIBBPF_API int ring_buffer__poll(struct ring_buffer *rb, int timeout_ms);
LIBBPF_API int ring_buffer__consume(struct ring_buffer *rb);
LIBBPF_API int ring_buffer__consume_n(struct ring_buffer *rb, size_t n);
LIBBPF_API int ring_buffer__epoll_fd(const struct ring_buffer *rb);
LIBBPF_API struct ring *ring_buffer__ring(struct ring_buffer *rb,
void ring_buffer__free(struct ring_buffer *rb)
struct ring_buffer *
struct ring_buffer *rb;
int ring_buffer__consume_n(struct ring_buffer *rb, size_t n)
int ring_buffer__consume(struct ring_buffer *rb)
int ring_buffer__poll(struct ring_buffer *rb, int timeout_ms)
int ring_buffer__epoll_fd(const struct ring_buffer *rb)
struct ring *ring_buffer__ring(struct ring_buffer *rb, unsigned int idx)
static void ringbuf_free_ring(struct ring_buffer *rb, struct ring *r)
int ring_buffer__add(struct ring_buffer *rb, int map_fd,
struct ring_buffer *ringbuf;
static struct ring_buffer *ringbuf;
struct ring_buffer *ringbuf = NULL;
struct ring_buffer *ringbuf = NULL;
struct ring_buffer *ringbuf = NULL;
struct ring_buffer **kern_ringbuf_out,
struct ring_buffer *kern_ringbuf = NULL;
static void drain_kernel_messages_buffer(struct ring_buffer *kern_ringbuf,
struct ring_buffer *kern_ringbuf;
struct ring_buffer *rb;