size_t gzip_compress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n) { zlen_t dstlen = d_len; ASSERT(d_len <= s_len); /* check if hardware accelerator can be used */ if (qat_use_accel(s_len)) { if (qat_compress(QAT_COMPRESS, s_start, s_len, d_start, d_len, &dstlen) == CPA_STATUS_SUCCESS) return ((size_t)dstlen); /* if hardware compress fail, do it again with software */ } if (compress_func(d_start, &dstlen, s_start, s_len, n) != Z_OK) { if (d_len != s_len) return (s_len); bcopy(s_start, d_start, s_len); return (s_len); } return ((size_t)dstlen); }
size_t gzip_compress(void *s_start, void *d_start, size_t s_len, size_t d_len, int n) { zlen_t dstlen = d_len; ASSERT(d_len <= s_len); if (compress_func(d_start, &dstlen, s_start, s_len, n) != Z_OK) { if (d_len != s_len) return (s_len); bcopy(s_start, d_start, s_len); return (s_len); } return ((size_t)dstlen); }