Lines Matching refs:outq
57 lzma_outq_init(lzma_outq *outq, const lzma_allocator *allocator, in lzma_outq_init() argument
68 if (outq->buf_size_max != buf_size_max in lzma_outq_init()
69 || outq->bufs_allocated != bufs_count) { in lzma_outq_init()
70 lzma_outq_end(outq, allocator); in lzma_outq_init()
77 outq->bufs = lzma_alloc(bufs_count * sizeof(lzma_outbuf), in lzma_outq_init()
79 outq->bufs_mem = lzma_alloc((size_t)(bufs_alloc_size), in lzma_outq_init()
82 if (outq->bufs == NULL || outq->bufs_mem == NULL) { in lzma_outq_init()
83 lzma_outq_end(outq, allocator); in lzma_outq_init()
90 outq->buf_size_max = (size_t)(buf_size_max); in lzma_outq_init()
91 outq->bufs_allocated = bufs_count; in lzma_outq_init()
92 outq->bufs_pos = 0; in lzma_outq_init()
93 outq->bufs_used = 0; in lzma_outq_init()
94 outq->read_pos = 0; in lzma_outq_init()
101 lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator) in lzma_outq_end() argument
103 lzma_free(outq->bufs, allocator); in lzma_outq_end()
104 outq->bufs = NULL; in lzma_outq_end()
106 lzma_free(outq->bufs_mem, allocator); in lzma_outq_end()
107 outq->bufs_mem = NULL; in lzma_outq_end()
114 lzma_outq_get_buf(lzma_outq *outq) in lzma_outq_get_buf() argument
117 assert(outq->bufs_used < outq->bufs_allocated); in lzma_outq_get_buf()
120 lzma_outbuf *buf = &outq->bufs[outq->bufs_pos]; in lzma_outq_get_buf()
121 buf->buf = outq->bufs_mem + outq->bufs_pos * outq->buf_size_max; in lzma_outq_get_buf()
126 if (++outq->bufs_pos == outq->bufs_allocated) in lzma_outq_get_buf()
127 outq->bufs_pos = 0; in lzma_outq_get_buf()
129 ++outq->bufs_used; in lzma_outq_get_buf()
136 lzma_outq_is_readable(const lzma_outq *outq) in lzma_outq_is_readable() argument
138 uint32_t i = outq->bufs_pos - outq->bufs_used; in lzma_outq_is_readable()
139 if (outq->bufs_pos < outq->bufs_used) in lzma_outq_is_readable()
140 i += outq->bufs_allocated; in lzma_outq_is_readable()
142 return outq->bufs[i].finished; in lzma_outq_is_readable()
147 lzma_outq_read(lzma_outq *restrict outq, uint8_t *restrict out, in lzma_outq_read() argument
153 if (outq->bufs_used == 0) in lzma_outq_read()
157 uint32_t i = outq->bufs_pos - outq->bufs_used; in lzma_outq_read()
158 if (outq->bufs_pos < outq->bufs_used) in lzma_outq_read()
159 i += outq->bufs_allocated; in lzma_outq_read()
161 lzma_outbuf *buf = &outq->bufs[i]; in lzma_outq_read()
168 lzma_bufcpy(buf->buf, &outq->read_pos, buf->size, in lzma_outq_read()
172 if (outq->read_pos < buf->size) in lzma_outq_read()
180 --outq->bufs_used; in lzma_outq_read()
181 outq->read_pos = 0; in lzma_outq_read()