12#ifndef LZMA_OUTQUEUE_H
13#define LZMA_OUTQUEUE_H
90 uint64_t mem_allocated;
101 uint32_t bufs_allocated;
210 uint8_t *restrict out,
size_t *restrict
out_pos,
225 void (*enable_partial_output)(
void *worker));
251static inline uint64_t
252lzma_outq_outbuf_memusage(
size_t buf_size)
#define assert(condition)
Definition lz4.c:273
str head
Definition test-lz4-abi.py:25
Custom functions for memory handling.
Definition base.h:372
lzma_vli uncompressed_size
Definition outqueue.h:64
void * worker
Definition outqueue.h:26
lzma_vli unpadded_size
Definition outqueue.h:63
size_t pos
Definition outqueue.h:37
lzma_outbuf * next
Definition outqueue.h:21
lzma_ret finish_ret
Definition outqueue.h:59
bool finished
Definition outqueue.h:52
size_t decoder_in_pos
Definition outqueue.h:46
size_t allocated
Definition outqueue.h:30
uint8_t buf[]
Buffer of "allocated" bytes.
Definition outqueue.h:67
uint32_t bufs_limit
Maximum allowed number of allocated buffers.
Definition outqueue.h:102
uint32_t bufs_in_use
Definition outqueue.h:96
Definitions common to the whole liblzma library.
lzma_ret
Return values used by several functions in liblzma.
Definition base.h:57
const lzma_allocator const uint8_t size_t uint8_t size_t * out_pos
Definition block.h:528
const lzma_allocator * allocator
Definition block.h:377
const lzma_allocator lzma_vli unpadded_size
Definition index.h:345
uint64_t lzma_vli
Variable-length integer type.
Definition vli.h:63
void lzma_outq_end(lzma_outq *outq, const lzma_allocator *allocator)
Free the memory associated with the output queue.
Definition outqueue.c:138
bool lzma_outq_is_readable(const lzma_outq *outq)
Test if there is data ready to be read.
Definition outqueue.c:221
void lzma_outq_enable_partial_output(lzma_outq *outq, void(*enable_partial_output)(void *worker))
Enable partial output from a worker thread.
Definition outqueue.c:275
void lzma_outq_clear_cache2(lzma_outq *outq, const lzma_allocator *allocator, size_t keep_size)
Like lzma_outq_clear_cache() but might keep one buffer.
Definition outqueue.c:94
struct lzma_outbuf_s lzma_outbuf
Output buffer for a single thread.
Definition outqueue.h:17
void lzma_outq_clear_cache(lzma_outq *outq, const lzma_allocator *allocator)
Free all cached buffers that consume memory but aren't in use.
Definition outqueue.c:84
uint64_t lzma_outq_memusage(uint64_t buf_size_max, uint32_t threads)
Calculate the memory usage of an output queue.
Definition outqueue.c:24
lzma_ret lzma_outq_init(lzma_outq *outq, const lzma_allocator *allocator, uint32_t threads)
Initialize an output queue.
Definition outqueue.c:113
lzma_outbuf * lzma_outq_get_buf(lzma_outq *outq, void *worker)
Get a new buffer.
Definition outqueue.c:183
lzma_ret lzma_outq_read(lzma_outq *restrict outq, const lzma_allocator *restrict allocator, uint8_t *restrict out, size_t *restrict out_pos, size_t out_size, lzma_vli *restrict unpadded_size, lzma_vli *restrict uncompressed_size)
Read finished data.
Definition outqueue.c:231
lzma_ret lzma_outq_prealloc_buf(lzma_outq *outq, const lzma_allocator *allocator, size_t size)
Preallocate a new buffer into cache.
Definition outqueue.c:149
uint64_t uncompressed_size
Definition list.c:209