Lines Matching refs:rb

564 static bool data_make_reusable(struct printk_ringbuffer *rb,  in data_make_reusable()  argument
570 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_make_reusable()
571 struct prb_desc_ring *desc_ring = &rb->desc_ring; in data_make_reusable()
632 static bool data_push_tail(struct printk_ringbuffer *rb, unsigned long lpos) in data_push_tail() argument
634 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_push_tail()
675 if (!data_make_reusable(rb, tail_lpos, lpos, &next_lpos)) { in data_push_tail()
767 static bool desc_push_tail(struct printk_ringbuffer *rb, in desc_push_tail() argument
770 struct prb_desc_ring *desc_ring = &rb->desc_ring; in desc_push_tail()
812 if (!data_push_tail(rb, desc.text_blk_lpos.next)) in desc_push_tail()
875 static bool desc_reserve(struct printk_ringbuffer *rb, unsigned long *id_out) in desc_reserve() argument
877 struct prb_desc_ring *desc_ring = &rb->desc_ring; in desc_reserve()
920 if (!desc_push_tail(rb, id_prev_wrap)) in desc_reserve()
1024 static char *data_alloc(struct printk_ringbuffer *rb, unsigned int size, in data_alloc() argument
1027 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_alloc()
1046 if (!data_push_tail(rb, next_lpos - DATA_SIZE(data_ring))) { in data_alloc()
1105 static char *data_realloc(struct printk_ringbuffer *rb, unsigned int size, in data_realloc() argument
1108 struct prb_data_ring *data_ring = &rb->text_data_ring; in data_realloc()
1135 if (!data_push_tail(rb, next_lpos - DATA_SIZE(data_ring))) in data_realloc()
1350 bool prb_reserve_in_last(struct prb_reserved_entry *e, struct printk_ringbuffer *rb, in prb_reserve_in_last() argument
1353 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_reserve_in_last()
1376 e->rb = rb; in prb_reserve_in_last()
1394 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve_in_last()
1400 r->text_buf = data_alloc(rb, r->text_buf_size, in prb_reserve_in_last()
1403 if (!get_data(&rb->text_data_ring, &d->text_blk_lpos, &data_size)) in prb_reserve_in_last()
1418 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve_in_last()
1424 r->text_buf = data_realloc(rb, r->text_buf_size, in prb_reserve_in_last()
1432 e->text_space = space_used(&rb->text_data_ring, &d->text_blk_lpos); in prb_reserve_in_last()
1485 bool prb_reserve(struct prb_reserved_entry *e, struct printk_ringbuffer *rb, in prb_reserve() argument
1488 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_reserve()
1494 if (!data_check_size(&rb->text_data_ring, r->text_buf_size)) in prb_reserve()
1505 if (!desc_reserve(rb, &id)) { in prb_reserve()
1507 atomic_long_inc(&rb->fail); in prb_reserve()
1527 e->rb = rb; in prb_reserve()
1555 r->text_buf = data_alloc(rb, r->text_buf_size, &d->text_blk_lpos, id); in prb_reserve()
1566 e->text_space = space_used(&rb->text_data_ring, &d->text_blk_lpos); in prb_reserve()
1578 struct prb_desc_ring *desc_ring = &e->rb->desc_ring; in _prb_commit()
1634 struct prb_desc_ring *desc_ring = &e->rb->desc_ring; in prb_commit()
1666 struct prb_desc_ring *desc_ring = &e->rb->desc_ring; in prb_final_commit()
1796 static int prb_read(struct printk_ringbuffer *rb, u64 seq, in prb_read() argument
1799 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_read()
1825 if (!copy_data(&rb->text_data_ring, &desc.text_blk_lpos, info->text_len, in prb_read()
1835 static u64 prb_first_seq(struct printk_ringbuffer *rb) in prb_first_seq() argument
1837 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_first_seq()
1844 id = atomic_long_read(&rb->desc_ring.tail_id); /* LMM(prb_first_seq:A) */ in prb_first_seq()
1885 static bool _prb_read_valid(struct printk_ringbuffer *rb, u64 *seq, in _prb_read_valid() argument
1891 while ((err = prb_read(rb, *seq, r, line_count))) { in _prb_read_valid()
1892 tail_seq = prb_first_seq(rb); in _prb_read_valid()
1937 bool prb_read_valid(struct printk_ringbuffer *rb, u64 seq, in prb_read_valid() argument
1940 return _prb_read_valid(rb, &seq, r, NULL); in prb_read_valid()
1967 bool prb_read_valid_info(struct printk_ringbuffer *rb, u64 seq, in prb_read_valid_info() argument
1974 return _prb_read_valid(rb, &seq, &r, line_count); in prb_read_valid_info()
1992 u64 prb_first_valid_seq(struct printk_ringbuffer *rb) in prb_first_valid_seq() argument
1996 if (!_prb_read_valid(rb, &seq, NULL, NULL)) in prb_first_valid_seq()
2017 u64 prb_next_seq(struct printk_ringbuffer *rb) in prb_next_seq() argument
2019 struct prb_desc_ring *desc_ring = &rb->desc_ring; in prb_next_seq()
2052 while (_prb_read_valid(rb, &seq, NULL, NULL)) in prb_next_seq()
2075 void prb_init(struct printk_ringbuffer *rb, in prb_init() argument
2083 rb->desc_ring.count_bits = descbits; in prb_init()
2084 rb->desc_ring.descs = descs; in prb_init()
2085 rb->desc_ring.infos = infos; in prb_init()
2086 atomic_long_set(&rb->desc_ring.head_id, DESC0_ID(descbits)); in prb_init()
2087 atomic_long_set(&rb->desc_ring.tail_id, DESC0_ID(descbits)); in prb_init()
2088 atomic_long_set(&rb->desc_ring.last_finalized_id, DESC0_ID(descbits)); in prb_init()
2090 rb->text_data_ring.size_bits = textbits; in prb_init()
2091 rb->text_data_ring.data = text_buf; in prb_init()
2092 atomic_long_set(&rb->text_data_ring.head_lpos, BLK0_LPOS(textbits)); in prb_init()
2093 atomic_long_set(&rb->text_data_ring.tail_lpos, BLK0_LPOS(textbits)); in prb_init()
2095 atomic_long_set(&rb->fail, 0); in prb_init()