Lines Matching refs:r
42 static void ringbuf_unmap_ring(struct ring_buffer *rb, struct ring *r) in ringbuf_unmap_ring() argument
44 if (r->consumer_pos) { in ringbuf_unmap_ring()
45 munmap(r->consumer_pos, rb->page_size); in ringbuf_unmap_ring()
46 r->consumer_pos = NULL; in ringbuf_unmap_ring()
48 if (r->producer_pos) { in ringbuf_unmap_ring()
49 munmap(r->producer_pos, rb->page_size + 2 * (r->mask + 1)); in ringbuf_unmap_ring()
50 r->producer_pos = NULL; in ringbuf_unmap_ring()
61 struct ring *r; in ring_buffer__add() local
92 r = &rb->rings[rb->ring_cnt]; in ring_buffer__add()
93 memset(r, 0, sizeof(*r)); in ring_buffer__add()
95 r->map_fd = map_fd; in ring_buffer__add()
96 r->sample_cb = sample_cb; in ring_buffer__add()
97 r->ctx = ctx; in ring_buffer__add()
98 r->mask = info.max_entries - 1; in ring_buffer__add()
108 r->consumer_pos = tmp; in ring_buffer__add()
122 ringbuf_unmap_ring(rb, r); in ring_buffer__add()
127 r->producer_pos = tmp; in ring_buffer__add()
128 r->data = tmp + rb->page_size; in ring_buffer__add()
137 ringbuf_unmap_ring(rb, r); in ring_buffer__add()
209 static int64_t ringbuf_process_ring(struct ring* r) in ringbuf_process_ring() argument
218 cons_pos = smp_load_acquire(r->consumer_pos); in ringbuf_process_ring()
221 prod_pos = smp_load_acquire(r->producer_pos); in ringbuf_process_ring()
223 len_ptr = r->data + (cons_pos & r->mask); in ringbuf_process_ring()
235 err = r->sample_cb(r->ctx, sample, len); in ringbuf_process_ring()
238 smp_store_release(r->consumer_pos, in ringbuf_process_ring()
245 smp_store_release(r->consumer_pos, cons_pos); in ringbuf_process_ring()