#define EVA_SIZE (sizeof(uint64_t) * MVEC_SIZE) struct DeflateParams { z_stream strm; size_t size; Bytef *in; Bytef *out; uint8_t tgap[THREAD_GAP]; }; struct InflateParams { z_stream strm; size_t avail_in; size_t size; Bytef *in; Bytef *out; uint8_t tgap[THREAD_GAP]; }; int salis_deflate(struct DeflateParams *params) { assert(params); assert(params->size); assert(params->in); assert(params->out); params->strm.zalloc = NULL; params->strm.zfree = NULL; params->strm.opaque = NULL; deflateInit(¶ms->strm, Z_DEFAULT_COMPRESSION); params->strm.avail_in = params->size; params->strm.avail_out = params->size; params->strm.next_in = params->in; params->strm.next_out = params->out; deflate(¶ms->strm, Z_FINISH); return 0; } void salis_deflate_end(struct DeflateParams *params) { assert(params); deflateEnd(¶ms->strm); } int salis_inflate(struct InflateParams *params) { assert(params); assert(params->avail_in); assert(params->size); assert(params->in); assert(params->out); params->strm.next_in = params->in; params->strm.avail_in = params->avail_in; params->strm.zalloc = NULL; params->strm.zfree = NULL; params->strm.opaque = NULL; inflateInit(¶ms->strm); params->strm.avail_out = params->size; params->strm.next_out = params->out; #if defined(NDEBUG) inflate(¶ms->strm, Z_FINISH); #else assert(inflate(¶ms->strm, Z_FINISH)); #endif return 0; } void salis_inflate_end(struct InflateParams *params) { assert(params); inflateEnd(¶ms->strm); }