Lines Matching full:rb

49 static BROTLI_INLINE void RingBufferInit(RingBuffer* rb) {  in RingBufferInit()  argument
50 rb->cur_size_ = 0; in RingBufferInit()
51 rb->pos_ = 0; in RingBufferInit()
52 rb->data_ = 0; in RingBufferInit()
53 rb->buffer_ = 0; in RingBufferInit()
57 const BrotliEncoderParams* params, RingBuffer* rb) { in RingBufferSetup() argument
60 *(uint32_t*)&rb->size_ = 1u << window_bits; in RingBufferSetup()
61 *(uint32_t*)&rb->mask_ = (1u << window_bits) - 1; in RingBufferSetup()
62 *(uint32_t*)&rb->tail_size_ = 1u << tail_bits; in RingBufferSetup()
63 *(uint32_t*)&rb->total_size_ = rb->size_ + rb->tail_size_; in RingBufferSetup()
66 static BROTLI_INLINE void RingBufferFree(MemoryManager* m, RingBuffer* rb) { in RingBufferFree() argument
67 BROTLI_FREE(m, rb->data_); in RingBufferFree()
73 MemoryManager* m, const uint32_t buflen, RingBuffer* rb) { in RingBufferInitBuffer() argument
79 if (rb->data_) { in RingBufferInitBuffer()
80 memcpy(new_data, rb->data_, in RingBufferInitBuffer()
81 2 + rb->cur_size_ + kSlackForEightByteHashingEverywhere); in RingBufferInitBuffer()
82 BROTLI_FREE(m, rb->data_); in RingBufferInitBuffer()
84 rb->data_ = new_data; in RingBufferInitBuffer()
85 rb->cur_size_ = buflen; in RingBufferInitBuffer()
86 rb->buffer_ = rb->data_ + 2; in RingBufferInitBuffer()
87 rb->buffer_[-2] = rb->buffer_[-1] = 0; in RingBufferInitBuffer()
89 rb->buffer_[rb->cur_size_ + i] = 0; in RingBufferInitBuffer()
94 const uint8_t* bytes, size_t n, RingBuffer* rb) { in RingBufferWriteTail() argument
95 const size_t masked_pos = rb->pos_ & rb->mask_; in RingBufferWriteTail()
96 if (BROTLI_PREDICT_FALSE(masked_pos < rb->tail_size_)) { in RingBufferWriteTail()
98 const size_t p = rb->size_ + masked_pos; in RingBufferWriteTail()
99 memcpy(&rb->buffer_[p], bytes, in RingBufferWriteTail()
100 BROTLI_MIN(size_t, n, rb->tail_size_ - masked_pos)); in RingBufferWriteTail()
106 MemoryManager* m, const uint8_t* bytes, size_t n, RingBuffer* rb) { in RingBufferWrite() argument
107 if (rb->pos_ == 0 && n < rb->tail_size_) { in RingBufferWrite()
114 rb->pos_ = (uint32_t)n; in RingBufferWrite()
115 RingBufferInitBuffer(m, rb->pos_, rb); in RingBufferWrite()
117 memcpy(rb->buffer_, bytes, n); in RingBufferWrite()
120 if (rb->cur_size_ < rb->total_size_) { in RingBufferWrite()
122 RingBufferInitBuffer(m, rb->total_size_, rb); in RingBufferWrite()
126 rb->buffer_[rb->size_ - 2] = 0; in RingBufferWrite()
127 rb->buffer_[rb->size_ - 1] = 0; in RingBufferWrite()
130 rb->buffer_[rb->size_] = 241; in RingBufferWrite()
133 const size_t masked_pos = rb->pos_ & rb->mask_; in RingBufferWrite()
136 RingBufferWriteTail(bytes, n, rb); in RingBufferWrite()
137 if (BROTLI_PREDICT_TRUE(masked_pos + n <= rb->size_)) { in RingBufferWrite()
139 memcpy(&rb->buffer_[masked_pos], bytes, n); in RingBufferWrite()
143 memcpy(&rb->buffer_[masked_pos], bytes, in RingBufferWrite()
144 BROTLI_MIN(size_t, n, rb->total_size_ - masked_pos)); in RingBufferWrite()
146 memcpy(&rb->buffer_[0], bytes + (rb->size_ - masked_pos), in RingBufferWrite()
147 n - (rb->size_ - masked_pos)); in RingBufferWrite()
151 BROTLI_BOOL not_first_lap = (rb->pos_ & (1u << 31)) != 0; in RingBufferWrite()
153 rb->buffer_[-2] = rb->buffer_[rb->size_ - 2]; in RingBufferWrite()
154 rb->buffer_[-1] = rb->buffer_[rb->size_ - 1]; in RingBufferWrite()
155 rb->pos_ = (rb->pos_ & rb_pos_mask) + (uint32_t)(n & rb_pos_mask); in RingBufferWrite()
158 rb->pos_ |= 1u << 31; in RingBufferWrite()