Lines Matching refs:rb
561 static bool data_make_reusable(struct printk_ringbuffer *rb, in data_make_reusable() argument
567 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_make_reusable()
568 struct prb_desc_ring *desc_ring = &rb->desc_ring; in data_make_reusable()
629 static bool data_push_tail(struct printk_ringbuffer *rb, unsigned long lpos) in data_push_tail() argument
631 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_push_tail()
672 if (!data_make_reusable(rb, tail_lpos, lpos, &next_lpos)) { in data_push_tail()
764 static bool desc_push_tail(struct printk_ringbuffer *rb, in desc_push_tail() argument
767 struct prb_desc_ring *desc_ring = &rb->desc_ring; in desc_push_tail()
809 if (!data_push_tail(rb, desc.text_blk_lpos.next)) in desc_push_tail()
872 static bool desc_reserve(struct printk_ringbuffer *rb, unsigned long *id_out) in desc_reserve() argument
874 struct prb_desc_ring *desc_ring = &rb->desc_ring; in desc_reserve()
917 if (!desc_push_tail(rb, id_prev_wrap)) in desc_reserve()
1021 static char *data_alloc(struct printk_ringbuffer *rb, unsigned int size, in data_alloc() argument
1024 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_alloc()
1043 if (!data_push_tail(rb, next_lpos - DATA_SIZE(data_ring))) { in data_alloc()
1102 static char *data_realloc(struct printk_ringbuffer *rb, unsigned int size, in data_realloc() argument
1105 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_realloc()
1132 if (!data_push_tail(rb, next_lpos - DATA_SIZE(data_ring))) in data_realloc()
1347 bool prb_reserve_in_last(struct prb_reserved_entry *e, struct printk_ringbuffer *rb, in prb_reserve_in_last() argument
1350 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_reserve_in_last()
1373 e->rb = rb; in prb_reserve_in_last()
1391 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve_in_last()
1397 r->text_buf = data_alloc(rb, r->text_buf_size, in prb_reserve_in_last()
1400 if (!get_data(&rb->text_data_ring, &d->text_blk_lpos, &data_size)) in prb_reserve_in_last()
1415 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve_in_last()
1421 r->text_buf = data_realloc(rb, r->text_buf_size, in prb_reserve_in_last()
1429 e->text_space = space_used(&rb->text_data_ring, &d->text_blk_lpos); in prb_reserve_in_last()
1479 bool prb_reserve(struct prb_reserved_entry *e, struct printk_ringbuffer *rb, in prb_reserve() argument
1482 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_reserve()
1488 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve()
1499 if (!desc_reserve(rb, &id)) { in prb_reserve()
1501 atomic_long_inc(&rb->fail); in prb_reserve()
1521 e->rb = rb; in prb_reserve()
1549 r->text_buf = data_alloc(rb, r->text_buf_size, &d->text_blk_lpos, id); in prb_reserve()
1560 e->text_space = space_used(&rb->text_data_ring, &d->text_blk_lpos); in prb_reserve()
1572 struct prb_desc_ring *desc_ring = &e->rb->desc_ring; in _prb_commit()
1628 struct prb_desc_ring *desc_ring = &e->rb->desc_ring; in prb_commit()
1785 static int prb_read(struct printk_ringbuffer *rb, u64 seq, in prb_read() argument
1788 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_read()
1814 if (!copy_data(&rb->text_data_ring, &desc.text_blk_lpos, info->text_len, in prb_read()
1824 static u64 prb_first_seq(struct printk_ringbuffer *rb) in prb_first_seq() argument
1826 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_first_seq()
1833 id = atomic_long_read(&rb->desc_ring.tail_id); /* LMM(prb_first_seq:A) */ in prb_first_seq()
1874 static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq, in _prb_read_valid() argument
1880 while ((err = prb_read(rb, *seq, r, line_count))) { in _prb_read_valid()
1881 tail_seq = prb_first_seq(rb); in _prb_read_valid()
1926 bool prb_read_valid(struct printk_ringbuffer *rb, u64 seq, in prb_read_valid() argument
1929 return _prb_read_valid(rb, &seq, r, NULL); in prb_read_valid()
1956 bool prb_read_valid_info(struct printk_ringbuffer *rb, u64 seq, in prb_read_valid_info() argument
1963 return _prb_read_valid(rb, &seq, &r, line_count); in prb_read_valid_info()
1981 u64 prb_first_valid_seq(struct printk_ringbuffer *rb) in prb_first_valid_seq() argument
1985 if (!_prb_read_valid(rb, &seq, NULL, NULL)) in prb_first_valid_seq()
2006 u64 prb_next_seq(struct printk_ringbuffer *rb) in prb_next_seq() argument
2011 while (_prb_read_valid(rb, &seq, NULL, NULL)) in prb_next_seq()
2034 void prb_init(struct printk_ringbuffer *rb, in prb_init() argument
2042 rb->desc_ring.count_bits = descbits; in prb_init()
2043 rb->desc_ring.descs = descs; in prb_init()
2044 rb->desc_ring.infos = infos; in prb_init()
2045 atomic_long_set(&rb->desc_ring.head_id, DESC0_ID(descbits)); in prb_init()
2046 atomic_long_set(&rb->desc_ring.tail_id, DESC0_ID(descbits)); in prb_init()
2048 rb->text_data_ring.size_bits = textbits; in prb_init()
2049 rb->text_data_ring.data = text_buf; in prb_init()
2050 atomic_long_set(&rb->text_data_ring.head_lpos, BLK0_LPOS(textbits)); in prb_init()
2051 atomic_long_set(&rb->text_data_ring.tail_lpos, BLK0_LPOS(textbits)); in prb_init()
2053 atomic_long_set(&rb->fail, 0); in prb_init()