Lines Matching refs:rb
561 static bool data_make_reusable(struct printk_ringbuffer *rb, in data_make_reusable() argument
567 struct prb_desc_ring *desc_ring = &rb->desc_ring; in data_make_reusable()
628 static bool data_push_tail(struct printk_ringbuffer *rb, in data_push_tail() argument
672 if (!data_make_reusable(rb, data_ring, tail_lpos, lpos, in data_push_tail()
765 static bool desc_push_tail(struct printk_ringbuffer *rb, in desc_push_tail() argument
768 struct prb_desc_ring *desc_ring = &rb->desc_ring; in desc_push_tail()
810 if (!data_push_tail(rb, &rb->text_data_ring, desc.text_blk_lpos.next)) in desc_push_tail()
873 static bool desc_reserve(struct printk_ringbuffer *rb, unsigned long *id_out) in desc_reserve() argument
875 struct prb_desc_ring *desc_ring = &rb->desc_ring; in desc_reserve()
918 if (!desc_push_tail(rb, id_prev_wrap)) in desc_reserve()
1022 static char *data_alloc(struct printk_ringbuffer *rb, in data_alloc() argument
1044 if (!data_push_tail(rb, data_ring, next_lpos - DATA_SIZE(data_ring))) { in data_alloc()
1103 static char *data_realloc(struct printk_ringbuffer *rb, in data_realloc() argument
1133 if (!data_push_tail(rb, data_ring, next_lpos - DATA_SIZE(data_ring))) in data_realloc()
1348 bool prb_reserve_in_last(struct prb_reserved_entry *e, struct printk_ringbuffer *rb, in prb_reserve_in_last() argument
1351 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_reserve_in_last()
1374 e->rb = rb; in prb_reserve_in_last()
1392 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve_in_last()
1398 r->text_buf = data_alloc(rb, &rb->text_data_ring, r->text_buf_size, in prb_reserve_in_last()
1401 if (!get_data(&rb->text_data_ring, &d->text_blk_lpos, &data_size)) in prb_reserve_in_last()
1416 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve_in_last()
1422 r->text_buf = data_realloc(rb, &rb->text_data_ring, r->text_buf_size, in prb_reserve_in_last()
1430 e->text_space = space_used(&rb->text_data_ring, &d->text_blk_lpos); in prb_reserve_in_last()
1480 bool prb_reserve(struct prb_reserved_entry *e, struct printk_ringbuffer *rb, in prb_reserve() argument
1483 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_reserve()
1489 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve()
1500 if (!desc_reserve(rb, &id)) { in prb_reserve()
1502 atomic_long_inc(&rb->fail); in prb_reserve()
1522 e->rb = rb; in prb_reserve()
1550 r->text_buf = data_alloc(rb, &rb->text_data_ring, r->text_buf_size, in prb_reserve()
1562 e->text_space = space_used(&rb->text_data_ring, &d->text_blk_lpos); in prb_reserve()
1574 struct prb_desc_ring *desc_ring = &e->rb->desc_ring; in _prb_commit()
1630 struct prb_desc_ring *desc_ring = &e->rb->desc_ring; in prb_commit()
1787 static int prb_read(struct printk_ringbuffer *rb, u64 seq, in prb_read() argument
1790 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_read()
1816 if (!copy_data(&rb->text_data_ring, &desc.text_blk_lpos, info->text_len, in prb_read()
1826 static u64 prb_first_seq(struct printk_ringbuffer *rb) in prb_first_seq() argument
1828 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_first_seq()
1835 id = atomic_long_read(&rb->desc_ring.tail_id); /* LMM(prb_first_seq:A) */ in prb_first_seq()
1876 static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq, in _prb_read_valid() argument
1882 while ((err = prb_read(rb, *seq, r, line_count))) { in _prb_read_valid()
1883 tail_seq = prb_first_seq(rb); in _prb_read_valid()
1928 bool prb_read_valid(struct printk_ringbuffer *rb, u64 seq, in prb_read_valid() argument
1931 return _prb_read_valid(rb, &seq, r, NULL); in prb_read_valid()
1958 bool prb_read_valid_info(struct printk_ringbuffer *rb, u64 seq, in prb_read_valid_info() argument
1965 return _prb_read_valid(rb, &seq, &r, line_count); in prb_read_valid_info()
1983 u64 prb_first_valid_seq(struct printk_ringbuffer *rb) in prb_first_valid_seq() argument
1987 if (!_prb_read_valid(rb, &seq, NULL, NULL)) in prb_first_valid_seq()
2008 u64 prb_next_seq(struct printk_ringbuffer *rb) in prb_next_seq() argument
2013 while (_prb_read_valid(rb, &seq, NULL, NULL)) in prb_next_seq()
2036 void prb_init(struct printk_ringbuffer *rb, in prb_init() argument
2044 rb->desc_ring.count_bits = descbits; in prb_init()
2045 rb->desc_ring.descs = descs; in prb_init()
2046 rb->desc_ring.infos = infos; in prb_init()
2047 atomic_long_set(&rb->desc_ring.head_id, DESC0_ID(descbits)); in prb_init()
2048 atomic_long_set(&rb->desc_ring.tail_id, DESC0_ID(descbits)); in prb_init()
2050 rb->text_data_ring.size_bits = textbits; in prb_init()
2051 rb->text_data_ring.data = text_buf; in prb_init()
2052 atomic_long_set(&rb->text_data_ring.head_lpos, BLK0_LPOS(textbits)); in prb_init()
2053 atomic_long_set(&rb->text_data_ring.tail_lpos, BLK0_LPOS(textbits)); in prb_init()
2055 atomic_long_set(&rb->fail, 0); in prb_init()