9#ifndef BROTLI_ENC_RINGBUFFER_H_
10#define BROTLI_ENC_RINGBUFFER_H_
15#include <brotli/types.h>
19#if defined(__cplusplus) || defined(c_plusplus)
58 int window_bits = ComputeRbBits(params);
59 int tail_bits = params->
lgblock;
60 *(uint32_t*)&rb->
size_ = 1u << window_bits;
61 *(uint32_t*)&rb->mask_ = (1u << window_bits) - 1;
62 *(uint32_t*)&rb->tail_size_ = 1u << tail_bits;
63 *(uint32_t*)&rb->total_size_ = rb->size_ + rb->tail_size_;
74 static const size_t kSlackForEightByteHashingEverywhere = 7;
76 m, uint8_t, 2 + buflen + kSlackForEightByteHashingEverywhere);
80 memcpy(new_data, rb->
data_,
81 2 + rb->
cur_size_ + kSlackForEightByteHashingEverywhere);
88 for (
i = 0;
i < kSlackForEightByteHashingEverywhere; ++
i) {
95 const size_t masked_pos = rb->
pos_ & rb->
mask_;
98 const size_t p = rb->
size_ + masked_pos;
107 if (rb->
pos_ == 0 && n < rb->tail_size_) {
114 rb->
pos_ = (uint32_t)n;
115 RingBufferInitBuffer(m, rb->
pos_, rb);
133 const size_t masked_pos = rb->
pos_ & rb->
mask_;
136 RingBufferWriteTail(
bytes, n, rb);
147 n - (rb->
size_ - masked_pos));
152 uint32_t rb_pos_mask = (1u << 31) - 1;
155 rb->
pos_ = (rb->
pos_ & rb_pos_mask) + (uint32_t)(n & rb_pos_mask);
158 rb->
pos_ |= 1u << 31;
163#if defined(__cplusplus) || defined(c_plusplus)
#define BROTLI_ALLOC(M, T, N)
Definition memory.h:44
#define BROTLI_FREE(M, P)
Definition memory.h:48
#define BROTLI_IS_OOM(M)
Definition memory.h:54
#define BROTLI_IS_NULL(A)
Definition memory.h:68
struct RingBuffer RingBuffer
int lgblock
Definition params.h:36
Definition ringbuffer.h:32
const uint32_t size_
Definition ringbuffer.h:34
uint32_t pos_
Definition ringbuffer.h:41
uint32_t cur_size_
Definition ringbuffer.h:39
uint8_t * data_
Definition ringbuffer.h:44
const uint32_t mask_
Definition ringbuffer.h:35
uint8_t * buffer_
Definition ringbuffer.h:46
const uint32_t total_size_
Definition ringbuffer.h:37
const uint32_t tail_size_
Definition ringbuffer.h:36
Definition compress42.c:551
#define BROTLI_BOOL
Definition types.h:49
lzma_index ** i
Definition index.h:629